软路由透明代理后智能家居离线、NAS 与 localhost 访问不了?2026 内网排查
优选科普
上了软路由/透明代理之后,往往会出现一批「跟上网无关」的怪事:
- 米家扫地机器人、小度音箱、智能插座频繁离线又自动恢复
- NAS 在家里能访问,从外面用公网 IP 或 DDNS 连不上了
- 本地开发环境
http://localhost:3000或127.0.0.1报 502 - 打印机、投屏、局域网文件共享搜不到设备了
这些全都是同一类问题:内网流量被代理接管了。 透明代理的作用是「把经过路由器的流量都拿去处理」,而它默认并不知道哪些是本该留在局域网里的。
好消息是这类问题几乎都能靠加几条直连规则解决,而且改动只在你自己的配置里。
为什么会这样
透明代理拿到一个连接时要判断「走代理还是直连」。判断依据是分流规则。如果规则集里没有明确把私有地址段放行,某些内网流量就会被送进代理隧道——然后:
- 目标是
192.168.x.x的包被发到了国外的节点上 - 节点那一侧当然找不到你家的这台设备
- 连接超时或被拒绝
智能家居设备表现为「频繁离线又恢复」,是因为它们大多每隔几十秒心跳一次:有的心跳恰好走对了,有的走错了,于是在线状态反复跳。
第一步:把私有地址段放直连
这是最核心的一条,绝大多数症状都由它解决。
在规则的最前面(顺序很重要,Clash 规则是自上而下第一个命中生效)加上:
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
- IP-CIDR,169.254.0.0/16,DIRECT,no-resolve
- IP-CIDR6,fc00::/7,DIRECT,no-resolve
- IP-CIDR6,fe80::/10,DIRECT,no-resolve
# ↓ 你原有的规则接在后面
⚠️ no-resolve 这个参数不能省。 它的意思是「匹配这条规则时不要先做 DNS 解析」。少了它,客户端会为了判断规则而先去解析域名,这在处理内网流量时会引入额外延迟,也可能触发 DNS 泄漏。
⚠️ 大多数机场下发的配置里已经带了这几条。 先搜一下配置里有没有 192.168,有就别重复加——重复规则不会报错,但会让你以后排查时看花眼。
第二步:localhost 报 502 的额外一层
如果加了 127.0.0.0/8 直连,localhost 还是不行,那问题在系统代理,不在分流规则。
系统代理有一个「绕过列表」,很多软件默认只填了 localhost,没填别的形式。而 127.0.0.1、::1、localhost:3000 这些写法可能不被同一条规则覆盖。
Windows:设置 → 网络和 Internet → 代理 → 「请勿对以下列条目开头的地址使用代理服务器」,填上:
localhost;127.0.0.1;::1;192.168.*;10.*;*.local
macOS / Linux:设置环境变量 NO_PROXY(部分程序读的是小写 no_proxy,两个都设上更稳):
export NO_PROXY="localhost,127.0.0.1,::1,192.168.0.0/16,10.0.0.0/8,.local"
export no_proxy="$NO_PROXY"
⚠️ 注意:NO_PROXY 只对读取这个环境变量的程序有效。很多 GUI 程序不读它。这也是为什么第一步的分流规则更根本——它在网络层生效,不依赖程序配合。
第三步:NAS 从外网访问不了
这个和上面两条的原因不同,要分两种情况:
情况 A:你在外面,通过公网 IP / DDNS 连家里的 NAS
流量方向是从外往内,跟你家路由器的代理没关系。 检查的是端口转发、DDNS 解析、以及运营商是否给了公网 IP。这种情况不是本文的问题。
情况 B:你在家里,用公网 IP / 域名访问自己的 NAS
这叫 NAT 回环(hairpin NAT),本来就有很多路由器支持不好。加上透明代理后更容易出问题:
- 你访问自己的公网 IP
- 这个 IP 不属于私有地址段,所以没被第一步的规则放行
- 流量被送去代理,从国外节点绕一圈回来找你家 IP
- 大概率失败
处理办法:把你自己的公网 IP 或 DDNS 域名显式加进直连规则:
rules:
- DOMAIN-SUFFIX,你的ddns域名.com,DIRECT
# 如果是固定公网 IP:
- IP-CIDR,你的公网IP/32,DIRECT,no-resolve
更省事的做法:在家里就用内网地址访问 NAS(192.168.x.x),不要绕公网。
第四步:设备发现类功能(投屏、打印机、文件共享)
搜不到局域网设备,通常是组播/广播被挡了,而不是分流规则的问题。
局域网设备发现依赖 mDNS(224.0.0.251:5353)、SSDP、NetBIOS 这类组播协议。TUN 模式和透明代理都可能把它们截走或阻断。
处理方向:
- 在分流规则里放行组播地址段:
- IP-CIDR,224.0.0.0/4,DIRECT,no-resolve
- IP-CIDR,239.255.255.250/32,DIRECT,no-resolve
- 检查 fake-ip 配置。
fake-ip模式会给域名分配虚假 IP,这会破坏依赖真实 IP 的设备发现。把内网域名加进fake-ip-filter:
dns:
enhanced-mode: fake-ip
fake-ip-filter:
- "*.local"
- "*.lan"
- "+.home.arpa"
- "localhost.ptlogin2.qq.com"
- 确认路由器本身没开 AP 隔离(客户端隔离)。开了的话局域网设备互相看不见,这跟代理完全无关,是路由器设置。
第五步:智能家居还是反复离线
前面几步做完还有问题,检查这两点:
1. 设备的 DNS 走到哪去了。 很多智能家居设备把 DNS 服务器硬编码成了厂商指定的地址,不理路由器下发的 DHCP 配置。如果透明代理劫持了 53 端口的 DNS 请求并送去代理,这些设备的解析结果就可能不对。
处理:在 DNS 配置里把厂商域名指定用国内 DNS 解析:
dns:
nameserver-policy:
"+.mi.com": 223.5.5.5
"+.miot-spec.com": 223.5.5.5
"+.baidu.com": 223.5.5.5
(域名按你实际用的品牌填,上面只是示例。)
2. 这些设备本来就该完全不走代理。 最干净的做法是按设备排除,而不是按域名。多数软路由固件支持「按 IP / MAC 指定绕过代理」。把所有智能家居设备的 IP 固定下来(在 DHCP 里做静态绑定),然后整批排除。
这个思路比逐个域名加规则可靠得多——你不可能穷举一个扫地机器人会访问的所有域名。
一个通用建议:出问题时先分清「内」和「外」
这类问题排查的第一个动作应该是:这个访问的目标在局域网内还是在外网?
- 目标在内网(
192.168.x.x、localhost、.local、局域网设备名)→ 它就不该走代理,去看分流规则和绕过列表。 - 目标在外网但不通 → 那是正常的代理问题,见 节点是绿的却无法上网。
分清这一点,能省掉一大半冤枉路。
对照表
| 现象 | 原因 | 去第几步 |
|---|---|---|
| 智能家居频繁离线又恢复 | 内网/心跳流量被代理接管 | 一、五 |
| localhost / 127.0.0.1 报 502 | 系统代理绕过列表不全 | 二 |
| 在家用公网 IP 访问 NAS 失败 | NAT 回环 + 公网 IP 未放行 | 三(情况 B) |
| 在外面访问 NAS 失败 | 端口转发/DDNS/公网 IP | 与代理无关 |
| 投屏、打印机搜不到 | 组播被挡 或 fake-ip 干扰 | 四 |
| 换了软路由后所有内网都不正常 | 私有地址段没放直连 | 一 |
路由器上的内核报错与崩溃是另一类问题,见 mihomo 报错与内核崩溃 和 Clash Meta 内存泄漏导致路由器断流。
顶级 IPLC 专线网络加速体验
稳定、高速、无忧解锁全球流媒体。采用企业级 SLA 在线率保证,是晚高峰 4K 观影和重度外网工作者的绝佳首选。
- 纯净内网专线高峰期不降速
- 原生 IP 节点秒开 Netflix 4K
- 无设备限制全家共享网络
- 特惠高配小包极致性价比之王