如何从零开始,使用 HomeProxy 进行代理上网
Sing-Box 是一款灵活的代理客户端,常用于路由器上进行网络代理配置,而 HomeProxy 则为用户提供了简单易用的代理管理界面。通过将 Sing-Box 客户端与 HomeProxy 结合使用,用户可以在路由器上实现全局代理,确保局域网内的所有设备都能共享同一代理服务。配置过程包括安装 Sing-Box 客户端、设置代理协议与服务器信息,然后在 HomeProxy 中进行代理的管理与监控。此方案不仅能提升网络隐私,还能绕过地理限制,优化网络连接速度。
luci-app-homeproxy是Sing-Box客户端,可以在OpenWrt 23.05+上运行。是基于homeproxy重新开发的。是homeproxy 的一个分支,增加了对选择器、urltest、规则集和冲突的支持,专门针对自定义路由而量身定制
兼容Socks5、HTTP(S)、Shadowsocks、Vmess、Trojan、Wireguard、Hysteria(2)、Vless、ShadowTLS、TUIC等协议,通过灵活的规则配置实现策略代理。
HomeProxy 作为一款 OpenWrt 平台的 sing-box 代理工具,以其优异的性能,丰富的协议支持以及细致的分流策略配置,逐渐成为路由器代理工具的新宠。
HomeProxy 安装
HomeProxy 路由系统版本要求 OpenWrt 23.05+ 或 ImmortalWrt 23.05+ 且仅支持 firewall4,芯片支持 ARM64/AMD64。
下载地址:https://github.com/douglarek/luci-app-homeproxy/releases/tag/2024050500
HomeProxy 的安装比较简单,下载对应的 “ipk” 软件包,然后进入路由器的 “系统”->”软件包”界面,点击”上传软件包”,将下载的 ipk 文件上传至路由器并安装即可。HomeProxy 本身并不需要其他依赖软件包,可以直接安装成功。但是由于其工作的代理模式需要使用”ip-full”和”kmod-tun”,否则工作不正常。使用路由器的软件包管理工具,更新列表后,直接安装这两个软件包即可。
HomeProxy 安装成功后,路由器的服务菜单中会增加”HomeProxy”菜单项。如果安装后没的显示,则重新启动路由器。
HomeProxy 配置
进入 HomeProxy 的主界面,由上到下会看到两排 Tab 标签,第一排为”客户端设置”、”节点设置”、”服务器设置”和”服务状态”,第二排则为第一排标签的详细设置项。
主界面会显示 HomeProxy 的运行状态,点击”打开控制面板”按钮,则会打开 metacubexd 控制台,这是一个类型于 Clash Web UI 面板的网页工具,用于显示 HomeProxy 的运行状态以及节点、路由规则等信息。
“客户端设置”标签页用于设置 sing-box 作为代理客户端时的配置项,这也是 HomeProxy 的核心功能。
“节点设置”标签页用于添加代理节点,可以手动添加也可以订阅添加。
“服务器设置”标签页用于设置 sing-box 代理服务器的配置项,可以启动并添加代理协议,从而让路由器成为代理服务器。
“服务状态”标签页可以显示实时日志,并进行连接测试,以验证是否可以成功科学上网。
HomeProxy 作为客户端的配置逻辑是先添加节点,然后进行客户端的配置,最后进行连接测试验证配置是否工作正常。
添加节点
“节点设置”包含”节点”和”订阅”两个标签页,用于手动和订阅方式添加节点。
“订阅”标签包含一些添加订阅节点的配置项,在”订阅地址”中增加代理机场的订阅地址,就会将订阅地址增至配置项中。至于”自动更新”、”使用代理更新”以及”允许不安全连接”等设置项,则根据实际使用需求钩选完成设置即可。所有订阅添加完成后,点击”保存并应用”就会将订阅地址中的代理节点添加至节点列表中。
“节点”标签页会列表显示所有的代理节点,这些节点对应于 sing-box 配置的”outbounds”项。
此时,也可以通过导入分享链接或手动添加方式增加节点内容。
在输入框输入节点名称后,点击”添加”按钮,就可手动增加节点了:
在”类型”下拉框中选择节点的协议类型,然后根据协议对应的设置项,输入相应的配置内容,最后点击保存,就完成了手动节点的添加。
“Selector”和”URLTest”是 sing-box 支持两种组节点,分别代理手动选择和自动测试选择。组节点会将现有多个节点编组成为一个虚拟节点,通过对应的选择策略从组中选择使用某些节点,从而实现最佳效果的目的。组节点根据实际情况添加,如果节点比较少或者具有详细的路由策略,也可以不设置。
如果 HomeProxy 中任何”出站”配置项中使用了下拉框中的”直连”项,则需要在节点中添加一个类型为”直连”的节点,否则会因为 sing-box 找不到出路由造成 HomeProxy 出错停止运行。
客户端设置
客户端设置是 HomeProxy 最为复杂难懂的部分,主要原因在于 sing-box 的配置内容过于精细。事实上 HomeProxy 已经将配置分门别类,大大简化了配置的复杂程度。只要注意一些默认事项,都可以独立完成一个功能完善的客户端配置。
如图.1 所示,HomeProxy 的客户端设置包含”路由设置”、”路由节点”、”路由规则”、”规则集”、”DNS 设置”、”DNS 服务器”、”DNS 规则”、”访问控制”以及”控制面板”九项内容。
HomeProxy 的客户端设置项,可以分为路由、DNS 和控制面板三个部分,而规则集则是供路由和 DNS 共同使用的规则项。由于 HomeProxy 内置了如下规则集,如无特别需要,规则集部分可以不设置,直接使用内置规则集即可:
- hp-geoip-cn
- hp-geoip-private
- hp-geosite-cn
- hp-geosite-microsoft-cn
- hp-geosite-netflix
- hp-geoip-netflix
由于”规则集”是路由规则和 DNS 规则的条件项,需要先行设置,其余内容则按自左至右顺序设置,就基本不会出现大的问题。
手动添加规则集,在”规则集”标签页输入框中输入规则集名称,然后点击添加按按钮,就会弹出添加规则集页面:
规则集类型分为本地和远程两种,分别代表本地规则集文件或互联网上提供的规则集文件,本地规则集需要给出文件路径,而远程规则集文件则需要输入规则集文件访问的网址并指定出站节点;规则集文件分格式为源地址格式和二进制格式,代表文本格式和二进制文件格式,与规则集文件本身相关,格式选择错误的话,引用此规则后会造成 HomeProxy 停止运行。想要添加规则集,可以从互联网找到相应规则集文件,然后添加进来即可。
规则集添加完成后,就可以进行路由和 DNS 设置了。
首先设置路由,路由的设置项分为路由设置、路由节点和路由规则三个部分。其中路由设置是 sing-box 路由配置的基本规则设置;路由节点是将代理节点标识成路由项供路由规则使用的内容;而路由规则是根据规则条件为不同的流量设置对应的访问规则,从而达到流量分流的目,提升代理使用体验。
路由设置项说明如下:
- 路由模式:是 HomeProxy 的工作模式,只能使用自定义路由模式
- 路由端口:用于指定哪些端口的流量可以被代理,可以选择所有端口,也可以使用默认的仅常用端口
- 代理模式:用于指定 HomeProxy 的工作模式,默认是 TCP/UDP 全部转发,会将 5030 5031 和 5333 的流量进行转发,当然也可以使用其他模式,这基于对 sing-box 的充分了解
- IPv6 支持:用于设置 HomeProxy 是否支持 IPv6 网络,建议取消钩选,这里设置的不支持并不影响之后设置 IPv6 的路由规则
- 绕过中国流量:用于设置是否使用防火墙规则来直接通过防火墙将流量 NAT 转发,从而减轻 HomeProxy 的性能消耗,根据需要自行选择是否启用
- 覆盖目标地址:用于设置是否使用嗅探到的域名覆盖连接目标,用于防止 DNS 污染,根据需要自行选择是否启用,但建议不启用
- 默认出站:用于设置默认的出站流量路由,就是出站流量未匹配到所有路由规则时,保底使用的出站路径,注意如果默认同站选择”禁用”,则表示 HomeProxy 停止工作
之后设置路由节点,添加好的路由节点会在路由设置的默认出站中体现为下拉框的下拉列表,但是系统会默认含有直连和封锁两个路由节点,这就十分坑了,路由节点设置不对,HomeProxy 就死活启动不起来,日志也显示的莫名其妙,所以设置时要多加留意细节内容。
之前说过,路由节点即是将代理节点与路由节点建立联系的过程,所有的代理节点都可以建立对应的路由节点,作为出路由来使用。已经添加好的路由节点会在节点列表中显示,需要添加新节点的话,可以在输入框输入路由节点名称,然后点击添加按钮,就会弹出如下添加节点页面:
添加路由节点时,选择好出站的代理节点,其他保持默认,之后 点击保存即可添加路由节点。有特殊要求时,可以对设置项进入调整,但这基于于 sing-box 配置文件的充分理解,否则很容易出错。
路由节点设置完成后,就可以设置路由规则了。需要添加路由规则时,只需要在输入框输入路由规则名称,然后点击添加,就会进入路由规则设置页面,由于设置的可选项非常多,示例只选择使用规则集中的中国大陆 IP 和网站,并使用反选功能表示非匹配内容,使用代理出站的”route_Default”路由节点。
路由规则设置完成后,点击保存按钮就会增加一条路由规则,已经添加成功的路由规则会列表显示在路由页面上:
注意路由规则是有先后顺序的,在上面的规则优先匹配,分别对应 sing-box 配置项出站的 block 、direct、和各类型出站节点,对于使用了出站类型为直连的规则,则需要设置出站节点为直连的路由规则。示例中设置了封锁 quic 流量的规则,但是不需要设置封锁节点,规则即可生效。
至于更为细致的路由规则,则可以根据个人需要自行设置,根据复杂的路由规则条件组合,就可以为不同应用设置不同的出站路径,以达到精确分流的目的。示例就没有做更为细致的设置,大概规则描述可以总结为封锁 quic 流量、属于规则集中中国大陆的网站和IP以及私网IP则直连访问、其他流量则通过代理访问。而这个代理访问则使用了节点组,通过 URL 测试来选择最佳节点。
然后设置 DNS,由于代理需要进行大量 DNS 查询,并且 DNS 也可以使用不同的服务器,所以需要对其进行精细设置。
DNS 设置先要对解析策略等内容进入设置:
设置好 DNS 解析策略以及默认 DNS 服务器后,根据需要选择是否禁用 DNS 缓存,全部完成后保存配置就设置了 DNS 的基本项。
由于境内 DNS 服务器存在某些网站解析不正确的问题,一般需要设置多个 DNS 服务器来处理境外服务器的域名请求。进入DNS 服务器标签页,在输入框输入 DNS 服务器的名称,点击添加按钮,就会进入 DNS 服务器设置页面:
示例添加了一个 GOOGLE 的 TCP DNS 服务器(DoT),由于普通的 DNS 请求是通过 UDP 来发送的,如果出站使用的是代理节点路由,而代理节点如果不支持 UDP 转发,则会造成域名解析失败,所以才使用 TCP 连接 DNS 服务器。而配置项中的”地址解析器”是为了应对使用域名作为 DNS 服务器的情况(例如:https://dns.alidns.com/dns-query),那么就需要使用地址解析器对这个 DNS 服务器的域名进行解析了。
全部 DNS 服务器添加成功后,就会在 DNS 服务器标签页列表显示相应信息:
最后设置 DNS 规则,也就是访问 DNS 服务器时所使用的路由规则和解析规则。与路由设置类似,需要精细的条件组合,才能设置精准的 DNS 规则项,全部规则设置完成后,会在 DNS 标签页列表显示。由于 DNS 规则设置内容与路由规则类似,这里不再过多赘述。
以上设置内容完成后,就完了 HomeProxy 主要的设置项,至于访问控制和控制面板则是配置使用 Web UI 网页的,如无特别要求,保持默认即可。
HomeProxy 的使用
HomeProxy 的使用与其他代理客户端没有区别,启动后即可正常使用。
可以进入服务状态标签页,查看 HomeProxy 以及 sing-box 的运行日志,也可以点击内外网网站的测试按钮查看代理是否工作正常。
查看 HomeProxy 调用 sing-box 侦听信息,就可以发现,其侦听了5330、5331、5333端口,其中5330是一个 mixed 端口,即同时支持 HTTP 和 SOCKS 代理,我们只需要将浏览器的网络代理设置为路由器的 IP 地址,端口使用5330,便可以通过 HomeProxy 代理上网。至于其他模式,使用方法也类似。
至此,HomeProxy 的详细使用教程就完成了,希望可以帮助大家了解 HomeProxy 以及 sing-box 的配置逻辑以及细节调整,能多充分享受优秀代理工具带来的便利。