症状很典型:Clash 一开,NAS 管理页打不开、网络打印机搜不到、路由器后台 192.168.1.1 一直转圈。原因是这些地址被兜底规则送去了代理,而代理服务器那头当然找不到你家的 NAS。
三条网段规则
放在 rules 的最前面:
rules:
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
- MATCH,PROXY
多数机场订阅自带这几条,但不是全部。打不开内网就先在配置里搜 192.168 确认有没有;不想改订阅原文就用 Mixin 注入,订阅更新也不会被覆盖。
no-resolve 是干嘛的
匹配 IP 规则时,如果手上只有域名,Clash 会先做一次 DNS 解析才能比对。加上 no-resolve 等于告诉它:这条只对本来就是 IP 的请求生效,别为它专门去解析一次。好处是少一次解析、快一点,也避免在 fake-ip 模式下拿到假 IP 造成误判——fake-ip 的机制见 自定义 DNS,IP 规则的完整语法见 IP-CIDR 与 GEOIP 规则详解。
域名形式的内网地址
如果你习惯用 nas.local、router.lan 或公司内网域名访问,网段规则救不了你——请求在拿到 IP 之前就已经被域名规则处理掉了。补上这几行:
- DOMAIN-SUFFIX,local,DIRECT
- DOMAIN-SUFFIX,lan,DIRECT
- DOMAIN-SUFFIX,公司内网后缀,DIRECT
TUN 模式下多一层:TUN 会一并接管 DNS,
.local 这类靠 mDNS 发现的名字可能直接解析不出来。把内网后缀加进 DNS 段的 fake-ip-filter,或者退一步直接用 IP 访问,都比反复调试省时间。