OpenClash(Mihomo 内核)跑在软路由上做网关,最大的价值是分流:国内直连,国外按服务走不同的节点。下面是我的实战配置思路。

一、分流策略

按服务建规则组,而不是一股脑全走代理:

  • YouTube / Netflix 等流媒体:走流媒体解锁好的节点
  • TikTok:走对应区域节点(美区/日区按需)
  • AI 服务(ChatGPT/Claude):走稳定低延迟节点
  • 国内网站:全部直连

规则从上到下按优先级排,GEOSITE 和 DOMAIN-SUFFIX 配合用,维护起来最清晰。

二、fake-ip 模式注意 DNS

OpenClash 默认 fake-ip 模式,内网 DNS 会返回 198.18.x.x 的假地址。排查问题时记得这一点:nslookup 看到 198.18 开头是正常的,别当成 DNS 污染。

真遇到污染(比如解析出奇怪的 IP),在 OpenClash 里指定可信 DNS(如 223.5.5.5)做 fallback。

三、一个真实的大坑:自定义白名单

我曾经在自定义规则里写了一条设备白名单:只有 7 个指定的局域网设备走代理分流,其余来源一律强制直连。结果软路由本机跑的 sing-box(经 127.0.0.1 串接 OpenClash)流量全部被直连,国外网站打不开,查了半天才定位到。

教训:凡是写了"非白名单直连"类规则,一定要把 127.0.0.1/32 加进白名单,否则本机服务流量会被误杀。

四、HTTP 代理认证

如果 OpenClash 的 7890 端口开了 Basic 认证,下游(比如 sing-box 的 http 出站)必须配 username/password,否则全是 407 报错。这个小细节经常被人忽略。