OpenWrt使用Sing-Box插件Homeproxy科学上网分流配置

以下为OpenWrt插件Homeproxy自定义路由模式网站分流的详细配置教程分享,如有不对之处请多包涵指正。(基于2025年版本界面):


一、基础环境准备

  1. 安装Homeproxy

    • 通过Web登录OpenWrt后台
    • 在「系统」-「软件包」中搜索homeproxy安装核心组件
    • 建议同步安装luci-app-homeproxy以获取图形化界面
  2. 节点配置

    • 进入「服务」-「Homeproxy」-「节点设置」-「订阅」
    • 点击「订阅地址」输入订阅链接,如图示操作:
  3. 简单使用

    • 我觉得默认路由设置完全可以满足日常使用了。
    • 进入「服务」-「Homeproxy」-「客户端设置」-「路由设置」
    • 默认路由设置界面,如图示操作:
    • 定期检查更新路由规则集
    • 现在就可以自动分流了。

二、自定义路由分流核心配置

  1. 进入自定义路由规则界面

  2. 创建路由节点

    • URLTest节点设置
    • 直选节点设置
  3. 添加规则集

    • 进入规则集管理界面,设置分流域名集或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

  4. 设置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而无法上网。
  5. 设置DNS规则

    • DNS规则的设置有顺序要求,从上到下优先匹配规则,配置不好就不会按你的预期进行工作。
    • 首先要设置一个用于路由器内部网站的解析规则,机场提供的节点域名形式,要放在第一位,不然后面的解析如果需要翻墙节点default_node,却无法解析代理节点域名,导致死循环死。
    • 按需设置其它规则,如:youtube的dns解析规则。规则集选为 youtue_site ,用于匹配 youtube相关域名的解析。出站必须设为不选,也就是保持默认,如果选择default_node出站,会导致整个DNS规则失效。服务器选国外DNS服务器。
  6. DNS设置

    • 设置默认DNS服务器,建议使用国外服务器,这样不在任何规则内的网站解析都使用国外服务器。禁用dns缓存必须选上,在路由器刚启动时,由于各种规则的下载、科学上网不能及时连上,会导致dns解析出错,这时一旦出错,报错就是成千上万条甚至几十万条,直接导致路由器卡死。EDNS Client subnet这些无需设置,存储被拒绝的 DNS 响应缓存也没必要设置。
  7. 设置路由规则

    • 添加路由规则有顺序要求,上面的规则优先匹配。
    • 例如:国内网站出站直连。添加一个direct路由规则,弹出的对话框里只需要在规则集里选择中国的ip及网站集合,出站选择直连即可,其他无需改动。
    • 例如:添加一个youtube_rule路由规则,弹出的对话框里只需要在规则集里选择YouTube的ip及网站集合,出站选择美国节点或其它,其他无需改动。


注意:每一步都要保存,现在可以通过homeproxy进行网站分流了。