Clash访问局域网设备失败怎么办?按规则与TUN排查
简答:Clash访问局域网设备失败时,先关闭TUN或系统代理做对照,再检查设备是否同网、私有网段是否DIRECT、TUN是否排除局域网,以及IP访问和设备名解析是否分别正常。
定义:Clash访问局域网设备失败,是指启用系统代理或TUN后,电脑无法访问路由器、NAS、打印机、摄像头等同一局域网设备。
先试这一步:用IP直连并关闭TUN对照
如果公网网站可以打开,但路由器后台、NAS或打印机页面打不开,不要先重写整份订阅。先做最小化对照:记录目标设备的实际IPv4地址,例如路由器后台地址,然后暂时关闭Clash的TUN模式;如果客户端同时启用了系统代理,也一并关闭,再访问同一个IP。
- IP能访问,设备名称不能访问:优先检查本地DNS、mDNS、Fake-IP或应用自身的加密DNS。
- 关闭TUN后恢复:问题更可能在TUN自动路由、排除网段或DNS接管。
- 关闭代理仍不能访问:先检查设备是否在线、电脑是否连到正确Wi-Fi、访客网络或无线客户端隔离是否开启。
- 始终超时:检查目标IP是否变化、电脑和设备是否处于不同VLAN或不同网段。
Clash类客户端的菜单名称和支持能力会因客户端、系统与内核不同而变化。本文以支持mihomo配置的客户端为主,实际入口以当前版本界面为准。
| 现象 | 优先判断 | 建议动作 |
|---|---|---|
| IP和域名都打不开 | 网络隔离、路由或防火墙 | 关闭TUN做对照,确认同一局域网并检查防火墙 |
| IP能打开,设备名打不开 | DNS、mDNS或Fake-IP | 先使用IP,随后检查本地解析与Fake-IP过滤 |
| 关闭TUN后恢复 | TUN路由接管局域网流量 | 排除局域网CIDR,或暂时不使用TUN |
| 其他设备无法使用电脑代理 | 监听地址、Allow LAN或防火墙 | 检查allow-lan、bind-address、端口与防火墙 |
Clash访问局域网设备失败的最短排查顺序
1. 确认两台设备真的在同一网络
电脑与路由器、NAS、打印机不一定只要连接同一个Wi-Fi名称就能互通。检查电脑当前IP、默认网关和目标设备IP;如果电脑连接的是访客Wi-Fi,或者无线接入点启用了客户端隔离,访问局域网设备可能会被网络本身阻断。Windows还可能将当前网络识别为公共网络,防火墙规则会因此更严格;可用设置—网络和Internet—当前网络属性确认网络类别,具体入口以当前Windows版本为准。Microsoft说明Windows防火墙会按域、专用和公用网络配置文件应用规则,不能把关闭防火墙当作首选修复方法。Windows Firewall官方说明
2. 用IP访问,不要先用设备名
先在浏览器中访问路由器或NAS的IP,例如http://192.168.1.1;示例地址仅作格式说明,应替换为你网络中的真实地址。RFC 1918定义了常见私有IPv4地址范围:10.0.0.0/8、172.16.0.0/12和192.168.0.0/16。RFC 1918私有地址说明
如果IP能访问而设备名失败,故障通常不在代理节点本身。设备名可能依赖本地DNS、NetBIOS、mDNS或应用内发现机制;以.local结尾的名称通常依赖本地链路上的多播DNS,不等同于普通公网域名解析。Apple关于.local与Bonjour的说明
3. 检查规则是否把私有网段送进代理
在规则模式下,私有网段应在代理兜底规则之前命中DIRECT。mihomo的规则文档支持使用IP-CIDR匹配目标地址,并通过规则顺序决定后续处理。mihomo路由规则文档
可在配置覆盖或本地配置补丁中使用最小示例:
rules:
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,你的代理策略组最后一行必须替换为当前配置中真实存在的策略组名称。不要把示例直接粘贴到所有客户端;部分客户端不支持同样的覆盖入口。每条规则都应是一个完整字符串,不能把多条规则写进同一行的列表元素。
4. 检查TUN是否接管并覆盖局域网路由
mihomo的TUN配置支持auto-route和route-exclude-address。后者可将指定CIDR从自动路由中排除,例如局域网网段。mihomo TUN配置文档
tun:
enable: true
auto-route: true
route-exclude-address:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16这段配置只适合确认客户端支持该字段且确实使用mihomo内核的场景。Windows、macOS、Linux和Android的TUN实现、权限要求及界面入口可能不同。若不确定,先在客户端界面关闭TUN复测,不要同时修改TUN、DNS和规则。
IP能访问但设备名或.local失败怎么办?
这类现象应单独处理,不要只增加DIRECT规则。先确认设备本身的IP访问正常,再按以下顺序排查:
- 本地DNS:确认路由器或企业DNS仍能解析内网主机名;必要时暂时使用设备IP验证。
- Fake-IP:如果启用了Fake-IP,检查内网域名是否加入
fake-ip-filter。mihomo文档说明该字段用于指定不返回Fake-IP映射的域名,支持通配符。mihomo DNS配置文档 - .local或设备发现:
.local通常依赖mDNS多播,不一定会经过普通DNS服务器;浏览器能否打开IP不能证明mDNS一定正常。 - 应用自带加密DNS:部分浏览器或应用可能绕过系统DNS,需在应用设置中暂时关闭安全DNS或改用系统解析进行对照,具体选项以应用当前版本为准。
一个低风险的验证方式是:先保留Clash配置不变,只把设备名替换成IP;如果业务允许,再为局域网域名添加本地解析或Fake-IP过滤。不要为了修复一个内网域名而关闭全部DNS保护。
如果是让手机、电视等设备通过Clash上网
“本机访问局域网设备”和“让其他设备通过电脑上的Clash代理上网”是两种不同问题。后者需要Clash监听局域网地址,并允许来自局域网的连接。
- 在客户端中确认已开启Allow LAN或等效选项。
- 确认监听地址不是只绑定
127.0.0.1;mihomo支持通过bind-address指定绑定的IPv4地址,*表示绑定所有地址,但开放范围越大,越应配合防火墙限制。mihomo通用配置文档 - 在手机或电视上填写电脑的局域网IP、Clash代理端口和对应协议;不要填写电脑的回环地址。
- 检查电脑防火墙是否允许该端口来自本地网络。Windows防火墙支持按本地子网、端口和网络配置文件限制规则,优先只允许可信的专用网络。Microsoft Windows Firewall说明
- 测试完成后关闭不再使用的Allow LAN,或将监听范围收窄到实际局域网地址。
Allow LAN解决的是“其他设备能否连接代理入口”,不会自动修复本机访问NAS失败,也不会替代路由器上的网络隔离设置。
用Connections或日志确认到底卡在哪一步
完成一次修改后,只复测一个目标地址,并查看客户端的Connections、连接详情或日志。重点记录四项:
- 目标:访问的是IP、普通域名还是
.local名称。 - 命中规则:是否显示
DIRECT,还是进入了代理策略组。 - 解析结果:是否得到真实内网IP、Fake-IP或解析失败。
- 连接结果:超时、连接拒绝、无路由和TLS错误分别对应不同方向。
判断方法可以简化为:命中代理且目标是私有IP,先修规则;命中DIRECT但超时,先查局域网、路由和防火墙;IP成功而名称失败,先查DNS、mDNS和Fake-IP;关闭TUN才恢复,优先查TUN排除路由。
如果订阅更新会覆盖本地规则,不要直接修改订阅原文。优先使用客户端提供的配置覆盖、扩展配置或本地规则集,并先备份原配置。保存后再次更新订阅,确认局域网规则仍在且排序位于代理兜底规则之前;如果客户端没有可核实的持久化入口,就保留备份并采用关闭TUN的回滚方案。
常见报错与回滚方法
| 现象 | 可能原因 | 回滚或复测 |
|---|---|---|
| 连接超时 | 网段未直连、TUN路由覆盖、网络隔离 | 关闭TUN并用IP访问 |
| 连接被拒绝 | 设备服务未启动、端口错误或防火墙拒绝 | 确认设备端口和Windows网络配置 |
| 无法解析主机 | 本地DNS、mDNS或Fake-IP处理异常 | 改用IP,检查DNS日志和过滤项 |
| 规则命中代理 | DIRECT规则缺失或顺序靠后 | 把私有网段规则放到MATCH之前 |
| 开启TUN后所有内网异常 | 自动路由或严格路由设置不适配当前网络 | 关闭TUN,删除最近的TUN修改后复测 |
回滚时只撤销最近一次改动:先关闭TUN,再恢复规则覆盖,最后恢复DNS设置。不要一次删除整个配置,否则很难判断真正的故障点。
常见问题
Clash访问局域网设备失败,先改规则还是先关TUN?
先关闭TUN或系统代理做一次对照,再用目标设备IP访问。关闭后恢复,优先检查TUN路由和局域网排除;关闭后仍失败,则先查同网、设备IP、防火墙和网络隔离。
Clash访问192.168.1.1打不开,加入DIRECT规则有用吗?
如果连接详情显示该地址被送入代理,加入私有网段DIRECT规则通常是合理的排查方向;规则必须放在代理兜底规则之前,并确认客户端支持该规则格式。若已命中DIRECT仍打不开,规则不是唯一原因。
为什么IP能访问,但NAS名称或.local访问不了?
这通常说明基础IP路由正常,问题转向本地DNS、mDNS、Fake-IP或应用自带DNS。先用IP完成对照,再检查Fake-IP过滤和本地名称解析;.local名称依赖本地链路多播,不等同于普通DNS。
Clash的Allow LAN能解决本机打不开路由器吗?
不能直接解决。Allow LAN主要用于让其他局域网设备连接电脑上的代理入口;本机访问路由器失败仍应检查DIRECT规则、TUN路由、DNS、网络隔离和防火墙。
订阅更新后局域网规则又失效怎么办?
不要直接改订阅原文,优先使用客户端提供的配置覆盖、扩展配置或本地规则集,并在更新订阅后检查规则是否仍存在且位于MATCH之前。具体入口以当前客户端为准;无法确认入口时先备份并保留关闭TUN的回滚方案。