本文目录
路由器自己的域名查询出错,和家中某台设备没有网络,需要查看的证据不同。这里要检查的是本应从公网解析器取得的回答,是否变成了代理的虚拟地址。查询结果与防火墙计数必须对应,才能进入插件升级或临时规避,而不是把所有相关功能一起关闭。
查询公网 IPv6 DNS,却收到 198.18.x
核对 OpenClash 的 IPv6、路由本机代理、本地 DNS 劫持和 Fake-IP 状态。上述功能开启时,再检查路由器上 SmartDNS 等解析器向公网 IPv6 DNS 查询是否收到 198.18.x,以及使用域名作为服务器地址的代理节点是否同时无法连接。
普通终端打不开网页、LAN 设备拿不到 IPv6、订阅下载失败或 DNS 端口被 AdGuard Home 占用,并不能直接证明是同一问题。先确认故障发生在路由器本机发往公网 IPv6 DNS 的查询,不要一看到 IPv6 就关闭全网功能。
只有同时满足这些条件才继续
- OpenClash 版本低于已收录修复的 v0.47.156,或升级后尚未重启服务
- 系统使用 fw4/nftables 或 legacy ip6tables,并开启路由本机代理
- 本地 DNS 劫持和 Fake-IP 已启用,路由器本机还有 SmartDNS 等解析器
- 该解析器配置了公网 IPv6 DNS 上游,节点服务器地址使用域名
保存插件包、DNS 设置与管理入口
记录插件和内核版本、运行模式及 SmartDNS 上游;按下面步骤保存设置、配置和安装包,便于升级失败时恢复。
测试期间不要同时改订阅、规则、DNS 上游和运行模式。一次只动一项,并保留修改前后的查询结果;否则节点恢复后也无法判断是哪一步起作用。
准备回退材料
导出插件设置
在配置文件管理中备份设置和当前配置,下载到路由器之外的设备保存。
保留原安装包
保存当前版本对应的官方 IPK 或 APK,并记下系统使用 opkg 还是 apk。
记录触发开关
抄下 IPv6、路由本机代理、本地 DNS 劫持、Fake-IP 与 SmartDNS IPv6 上游状态。
准备直连入口
确认能通过 LAN 管理路由器;远程维护时不要在没有备用连接的情况下修改 DNS 和防火墙。
在路由器上对照 DNS 回答与规则计数
在路由器终端直接指定一个当前可达的公网 IPv6 DNS 查询真实域名。正常结果应是域名的公开 A 或 AAAA 记录;如果返回 198.18.0.0/16,并且执行前后对应的 IPv6 OUTPUT DNS Hijack 规则计数增加,查询就被错误送回了本地 Clash DNS。
OpenClash issue #5251 的复现使用 2400:3200::1。这个地址是否适合你的网络仍要先确认;若 IPv6 路由本身不可达,超时只能说明上游不可用,不能证明发生了劫持。查询域名也可换成你明确知道有公开记录的普通域名。
在路由器 SSH 终端读取计数,按本机实际使用的防火墙选择下方一条命令:fw4/nftables 用第一条,legacy ip6tables 用第二条。不要只因两种命令都存在就混用;查询前后各执行一次,不清零、不删除规则。
nft list chain inet fw4 nat_outputip6tables -t nat -nvxL OUTPUT --line-numbersfw4 输出中,找到 IPv6、UDP 的 53 端口、redirect 和 OpenClash DNS Hijack 标记同时对应的规则,比较同一行 counter 的 packets 与 bytes。规则也可能合并 TCP/UDP;不要把整个 OUTPUT 的总量当成查询证据。
legacy 输出中,对照带 OpenClash DNS Hijack 标记的 IPv6 UDP/53 REDIRECT 规则,读取同一行的 pkts 与 bytes。旧规则的目标范围为 ::/0;修复后的规则仅匹配 ::1,公网查询不应增加这条规则的计数。
找不到相应规则或不能读取计数时,保存版本和查询结果,停止按这一故障升级;单有 198.18.x 回答还不足以证明同一问题。规则输出可能含网络信息,对外求助前先脱敏。
nslookup www.nic.ad.jp 2400:3200::1按结果决定下一步
| 查询结果 | 规则计数 | 结论 |
|---|---|---|
| 返回 198.18.x | IPv6 OUTPUT 计数增加 | 符合已确认的路由本机 IPv6 DNS 劫持 |
| 返回真实 A 或 AAAA | 计数不增加 | 该路径正常,转查订阅中的节点解析 DNS |
| 查询超时 | 计数不增加 | 先检查 IPv6 路由和所选 DNS 是否可达 |
| LAN 设备异常但路由器查询正常 | 无对应变化 | 转查 RA、DHCPv6、RDNSS 或浏览器安全 DNS |
只有 SmartDNS 查询异常,Mihomo 上游正常
核对进程所属用户组和查询去向;Mihomo 通常使用被规则排除的 GID(用户组编号),其他本机解析器的查询则可能命中 OUTPUT 规则。
所有 DNS 都返回 connection refused
检查本地监听端口和上游配置,不要套用本文的 IPv6 规则修复。
指定 IPv4 DNS 正常,指定 IPv6 DNS 返回 198.18.x
保留这组对照和计数变化,进入版本升级。
- SmartDNS 等本机解析器向公网 IPv6 地址发送 53 端口查询
- OpenClash OUTPUT 规则旧版用 ::/0 误匹配所有 IPv6 DNS 目的地址
- 本地 Clash DNS被重定向的查询在 Fake-IP 模式下返回 198.18.x
- 代理节点域名错误结果使使用域名的节点无法完成拨号
修复把路由本机的 IPv6 DNS 劫持范围从所有地址收窄到回环地址 ::1;LAN 设备的 DNS 接管规则没有被这次修改移除。
为什么公网 IPv6 DNS 会被当成本地查询
旧规则原本只应接管路由器本机发往回环地址的 DNS,却把 IPv6 目的范围写成 ::/0。这个范围包含全部 IPv6 地址,所以 SmartDNS 访问公网 IPv6 DNS 的 TCP 或 UDP 53 端口时,也会被重定向到本地 DNS。
问题不是 PR #5209 新增了 ::/0。该提交分开识别 IPv4 与 IPv6 规则后,让原本被提前跳过的旧分支稳定执行,才使缺陷从 v0.47.117 起更容易暴露。PR #5252 把 nftables 两处和 legacy ip6tables 四处都改为 ::1,并保留 LAN 侧 DNS 接管。
升级到包含修复的 v0.47.156
OpenClash v0.47.156 的官方发布记录已确认包含 #5252。下面按这个固定版本说明升级;已经运行更新版本时,先核对是否仍有相同查询与计数证据,不为照抄步骤降级。
旧的 ::/0 规则可能仍在防火墙中生效。只有重新生成规则,源码中的 ::1 才会真正生效。
一次可回退的升级
核对系统包格式
opkg 系统选择官方 IPK,apk 系统选择官方 APK,并确认下载来源是 v0.47.156 Release。不要混用开发分支文件或不同包格式。
暂停额外改动
保留原内核、订阅、运行模式和 DNS 设置,只升级 OpenClash 插件。
安装并重启服务
完成安装后重启 OpenClash,等待防火墙与 DNS 规则重新生成。
先查日志再联网
确认配置测试、内核启动和 DNS 监听成功;失败时恢复原包与备份。
公网查询、本机回环与节点连接的复查
用升级前同一台路由器、同一个域名和同一个公网 IPv6 DNS 再查一次。修复生效后应返回真实 A 或 AAAA,公网查询不再增加 IPv6 OUTPUT DNS Hijack 计数;向本机回环 ::1 发出的查询仍可被 OpenClash 接管。
修复验收清单
- OpenClash 版本包含 v0.47.156 的修复,服务已在安装后重新启动
- 指定公网 IPv6 DNS 返回真实 A 或 AAAA,不再返回 198.18.x
- 公网 IPv6 DNS 查询不再增加路由本机 IPv6 劫持规则计数
- 查询 ::1 时本地 DNS 接管仍正常,LAN 设备解析没有被破坏
- 至少一个原节点完成域名解析、拨号与实际页面访问,并有对应连接记录
暂时不能升级时怎么规避和回退
暂时无法升级时,可先从 SmartDNS 移除公网 IPv6 DNS 上游,改用已经验证可达的 IPv4 上游;也可以临时关闭路由本机代理或本地 DNS 劫持中的一个触发项。每种方式都会改变路由器自身流量或 DNS 接管,必须逐项测试,不能当成长期修复。
如果升级后异常扩大,先在管理页停用 OpenClash;若 DNS 仍指向已停止的服务,恢复可达上游。确认 LAN 管理入口可用后,还原原插件包与设置备份并重启,再用升级前的 IPv4/IPv6 查询对照原状态。
公网 IPv6 DNS 已返回真实结果但节点仍失败时,转查 proxy-server-nameserver、订阅内容、TLS 和节点服务器,不再继续改 OUTPUT 规则。
临时方案的影响
| 操作 | 适合情况 | 必须复查 |
|---|---|---|
| SmartDNS 改用可达的 IPv4 上游 | 无法立即升级但需要恢复节点解析 | 本地域名、缓存和节点域名都能正常解析 |
| 暂时关闭路由本机代理 | 只有路由器自身 DNS 受影响 | 路由器更新、订阅与插件下载的出站路径 |
| 暂时关闭本地 DNS 劫持 | 可接受终端按 DHCP 下发 DNS | LAN 设备是否绕过预期分流和 DNS 策略 |
| 恢复原包与配置 | 升级后服务无法启动或 LAN 断网 | 版本、DNS 监听、防火墙规则和真实访问 |
