OpenWrt使用Sing-Box插件Homeproxy科学上网分流配置
以下为OpenWrt插件Homeproxy自定义路由模式网站分流的详细配置教程分享,如有不对之处请多包涵指正。(基于2025年版本界面):
一、基础环境准备
安装Homeproxy
- 通过Web登录OpenWrt后台
- 在「系统」-「软件包」中搜索
homeproxy
安装核心组件 - 建议同步安装
luci-app-homeproxy
以获取图形化界面
节点配置
- 进入「服务」-「Homeproxy」-「节点设置」-「订阅」
- 点击「订阅地址」输入订阅链接,如图示操作:
简单使用
- 我觉得默认路由设置完全可以满足日常使用了。
- 进入「服务」-「Homeproxy」-「客户端设置」-「路由设置」
- 默认路由设置界面,如图示操作:
- 定期检查更新路由规则集
- 现在就可以自动分流了。
二、自定义路由分流核心配置
进入自定义路由规则界面
创建路由节点
- URLTest节点设置
- 直选节点设置
- URLTest节点设置
添加规则集
- 进入规则集管理界面,设置分流域名集或ip集。在 规则集 中分别加入我们需要分流的网站及ip,可以在sing-box官方或MetaCubeX的github网站上寻找域名、ip集合。规则集支持二进制和json格式,建议使用二进制格式,也就是srs格式,数据量小查询快。部分网站需要ip和域名都通过分流节点才能正常分流,如netflix。
- 通常使用的域名集合地址:
#MetaCubeX
https://github.com/MetaCubeX/meta-rules-dat/tree/sing
#sing-box
https://github.com/SagerNet/sing-geosite/tree/rule-set
#我使用的规则集
#中国ip
https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo-lite/geoip/cn.srs
#中国网站
https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo-lite/geosite/cn.srs
#youtube网站
https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo-lite/geosite/youtube.srs
#chatgpt网站
https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo-lite/geosite/openai.srs
#奈飞网站
https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo-lite/geosite/netflix.srs
#奈飞网站ip
https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo-lite/geoip/netflix.srs
#电报ip集合
https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo-lite/geoip/telegram.srs
#电报域名集合
https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo-lite/geosite/telegram.srs
#bilibili域名集合
https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo-lite/geosite/bilibili.srs
#twitter网站集合
https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo-lite/geosite/twitter.srs- 远程规则集,类型选为
远程
,格式为二进制文件
,也就是srs文件,出站不要选直连
,因为github网站国内打开是不稳定的,这些规则集合都通过默认代理节点下载。 - 本地规则集,如果我们还需对一些网站分流,可以手工设置规则,可以自行增加域名集合,首先我们在/etc/homeproxy/ruleset/ 里增加一个customsite.json文件,格式如下:
1
2
3
4
5
6
7
8
9
10
11
12{
"version": 1,
"rules": [
{
"domain_suffix": [
"example.com",
"example1.com",
"example3.com"
]
}
]
}example.com等更换为自己需要分流的网址,最后一个域名后没有
,
。这个处理完后,我们就可以增加自定义规则集合custom_site 。类型选为本地
,格式为源文件
,也就是json
文件,路径就是我们刚才设置的路径/etc/homeproxy/ruleset/customsite.json
。
设置DNS服务器
- DNS设置不对,打开网址卡死,原因是出错信息疯狂写入log日志,而且是持续写入直到浏览器关闭该网站访问,这会导致cpu迅速占满,路由器卡死。
- 先设置一个国内dns服务器,如增加一个阿里的dns服务器23.5.5.5,解析策略 建议 优先ipv4 ,出站选为直连。
- 先设置一个备份国内dns服务器,如增加一个腾讯的dns服务器119.29.29.29,解析策略 建议 优先ipv4 ,出站选为直连。
- 再设置一个国外dns服务器。建议google作为上游服务器,地址使用
tcp
模式tcp://8.8.8.8
。如果写入·8.8.8.8·是通过udp连接,有些节点服务器不支持udp会导致无法解析;也可以使用dot、doh服务器格式,这样会加密需要解析的域名,但机场代理节点的dns解锁服务会获取不到域名信息导致无法进行dns解锁,也就是机场代理节点应该能用的chatgpt、netflix等网站无法服务,使用doh、dot服务器,如:https://dns.google/dns-query
用于解析dns.google域名的另一个 DNS 服务器的标签。如果服务器地址包括域名则必须选择一个,可以选国内dns服务器。出站
不能直连
,选择默认节点default_node
。直连
会导致连接不上国外DNS而无法上网。
- DNS设置不对,打开网址卡死,原因是出错信息疯狂写入log日志,而且是持续写入直到浏览器关闭该网站访问,这会导致cpu迅速占满,路由器卡死。
设置DNS规则
- DNS规则的设置有顺序要求,从上到下优先匹配规则,配置不好就不会按你的预期进行工作。
- 首先要设置一个用于路由器内部网站的解析规则,机场提供的节点域名形式,要放在第一位,不然后面的解析如果需要翻墙节点default_node,却无法解析代理节点域名,导致死循环死。
- 按需设置其它规则,如:youtube的dns解析规则。规则集选为
youtue_site
,用于匹配 youtube相关域名的解析。出站必须设为不选
,也就是保持默认,如果选择default_node出站,会导致整个DNS规则失效。服务器选国外DNS服务器。
DNS设置
- 设置默认DNS服务器,建议使用国外服务器,这样不在任何规则内的网站解析都使用国外服务器。
禁用dns缓存
必须选上,在路由器刚启动时,由于各种规则的下载、科学上网不能及时连上,会导致dns解析出错,这时一旦出错,报错就是成千上万条甚至几十万条,直接导致路由器卡死。EDNS Client subnet这些无需设置,存储被拒绝的 DNS 响应缓存也没必要设置。
- 设置默认DNS服务器,建议使用国外服务器,这样不在任何规则内的网站解析都使用国外服务器。
设置路由规则
- 添加路由规则有顺序要求,上面的规则优先匹配。
- 例如:国内网站出站
直连
。添加一个direct
路由规则,弹出的对话框里只需要在规则集里选择中国的ip及网站集合,出站
选择直连
即可,其他无需改动。 - 例如:添加一个
youtube_rule
路由规则,弹出的对话框里只需要在规则集里选择YouTube的ip及网站集合,出站
选择美国节点
或其它,其他无需改动。
注意:每一步都要保存
,现在可以通过homeproxy进行网站分流了。