本文目录
同一台设备用 IP 能访问、换成完整域名却失败,需要继续核对名称解析。路由器和局域网设备可能把查询交给不同的解析器,必须分别测试;保留原设置和管理入口后,才能比较哪项调整真正恢复了所需服务。
Tailscale 在线,为什么路由器仍解析不了域名?
确认 OpenClash 与 Tailscale 都运行在同一台 OpenWrt 路由器上,再记录设备 IP 与完整 ts.net 名称的访问结果。若接受 Tailscale DNS 后本机域名请求异常,还要同时记录路由器自己的 DNS 与局域网设备的结果。
OpenClash 于 2026 年 10 月 12 日发布 v0.48.002,说明新增 Tailscale 默认模块,用于处理本机代理时启用 accept-dns 可能出现的异常。模块实际只给 ts.net 域名指定 Tailscale DNS,不是所有 DNS、路由或防火墙问题的通用修复。
路由器上的 tailscaled 必须正在运行,且 Tailscale 已连接。仅在电脑运行桌面 Clash、或局域网另一台设备运行 Tailscale 时,不要照搬路由器的模块。尚未登录、MagicDNS 未启用、设备离线或访问策略拒绝,应先处理对应问题。
用设备 IP、完整域名和两个 DNS 结果定位
先通过局域网地址进入 LuCI,保留 OpenWrt 与 OpenClash 设置备份、当前订阅和自定义模块,记下插件与 Tailscale 版本、本机代理开关、原 accept-dns 值及模块开关。只有 Tailscale 远程管理入口时,暂缓重启和 DNS 修改,先准备本地管理办法。
在路由器上读取 Tailscale 状态;从自己的管理控制台取得一台在线设备的完整 MagicDNS 名称和 IP。用相同服务对比 IP 与域名访问。IP 也失败时,应检查设备、服务、路由与访问权限,不能仅靠 DNS 模块判断或修复。
下面两次 nslookup 要换成你自己的完整名称。第二个服务器使用当前路由器的本地 DNS 地址;127.0.0.1 只是常见示例,须先确认该地址确实提供 DNS。测试都在路由器上执行,不能把 Tailscale DNS 地址当成普通公共 DNS 分给所有设备。
路由器的 DNS 劫持可能重定向发往指定服务器的请求,写了 100.100.100.100 不等于已绕过插件。必要时在本地管理下记录原状态,短暂停用 OpenClash、保持 Tailscale 运行再测,然后恢复;这会暂时影响局域网代理,应安排可中断的时段。
Fake-IP 模式下,本地 DNS 返回 198.18.x 并不自动表示解析坏了。还要用完整名称访问同一服务,结合内核日志看实际目标;超时、SERVFAIL、NXDOMAIN,或 IP 成功而名称失败,才是继续检查解析路径的线索。
tailscale version
tailscale status
nslookup device.your-tailnet.ts.net 100.100.100.100
nslookup device.your-tailnet.ts.net 127.0.0.1根据对照结果继续
| 观察结果 | 下一步 |
|---|---|
| 设备 IP 可达,已确认 Tailscale DNS 能解析,本地名称访问失败 | 检查请求是否进入 OpenClash DNS,以及运行配置是否缺少或覆盖 ts.net 的解析策略,再试内建模块。 |
| 排除 DNS 劫持后,Tailscale DNS 仍无法解析完整名称 | 先核对 tailscaled、登录状态、MagicDNS 和名称拼写;模块不能代替 Tailscale DNS 服务。 |
| 域名已有正确结果,但服务连接失败 | 转查目标服务、Tailscale 路由与访问策略;不要继续更换 DNS 来试运气。 |
| 只有路由器普通公网域名异常,局域网设备正常 | 保留两端差异,检查本机 DNS 与 accept-dns;不要把症状直接归为 ts.net 模块缺失。 |
在运行状态页启用内建 Tailscale 模块
旧版没有这个内建入口时,不要粘贴陌生脚本代替升级;这次调整也不要求升级整台路由器固件或重置全部配置。
让模块进入当前运行配置
核对实际插件版本
按文末官方 v0.48.002 Release 和原有升级方式更新插件,保留升级前备份。完成后在 LuCI 核对实际版本,并确认原订阅仍能启动;安装失败按报错与备份恢复。
从运行状态页打开覆写模块
进入服务 → OpenClash 的运行状态页,点击顶部的覆写模块按钮,在弹出窗口左侧选择内建 Tailscale。它与菜单中的覆写设置页面是不同入口。
确认范围后开启模块
新安装的内建 Tailscale 模块默认关闭、范围为全部配置。升级保留旧设置时,若显示未配置且没有开关,先用模块齿轮配置为全部或当前配置的完整路径,再启用。记录原值,不必编辑内容、创建副本或刷新远程订阅。
重启并检查运行配置
关闭编辑器后,在运行状态页重启 OpenClash。核对实际运行的 dns.nameserver-policy 中,+.ts.net 是否指向 100.100.100.100#DIRECT;仅保存或重载防火墙不会重新应用模块。
官方模块的内容如下,仅用于与现有模块核对。[YAML] 和 nameserver-policy+ 是 OpenClash 覆写格式;运行后的 Mihomo 配置使用 nameserver-policy。不要直接把整段复制到订阅 YAML,也不要新增重复模块。
[YAML]
dns:
nameserver-policy+:
'+.ts.net':
- 100.100.100.100#DIRECT100.100.100.100 是本机 Tailscale 提供的 DNS 服务地址,#DIRECT 让相关 DNS 请求使用直连。这个模块不替你启动 tailscaled,也不修改 Tailscale 路由、访问策略或 accept-dns。其他模块已有相同域名策略时,以最终运行配置为准,不能只看编辑器里的文字。
accept-dns 要不要关闭?只做有记录的对照
不要为了启用模块一律关闭 Tailscale DNS。只有原 accept-dns 为 true,且普通域名故障随该设置出现时,才在局域网管理连接下做一次关闭对照。先记录原值;关闭会让该设备停止接受 tailnet DNS 设置,可能影响系统 MagicDNS 短名称或自定义域名解析。
支持的 Tailscale CLI 可用 tailscale get accept-dns 查看当前值;旧版先查看帮助,不支持时从已有设置记录确认,不能把未知值当作 true。确认原值后,下面命令只用于这一次对照,不代表所有设备应长期采用 false。
tailscale set --accept-dns=falsetailscale set 只更新显式指定的参数;不要附加 reset、重新登录、接受路由或出口节点参数。关闭后重复相同公网域名、完整 ts.net 名称和服务访问测试,保存差异;没有改善就恢复原值,不继续叠加 DNS 改动。
原值为 true 时,回退命令为 tailscale set --accept-dns=true;原值为 false 时保持 false。系统解析器接受 Tailscale DNS 与 OpenClash 将 ts.net 查询送往本机 DNS,是两个不同设置。模块不会自动把系统短名称、其他私有域名或所有局域网设备变成可用。
完整域名恢复后,还要验证路由器和局域网
使用同一个真实完整 ts.net 名称,重复之前的两个 DNS 测试,再访问同一台设备的同一服务。Tailscale DNS 的真实地址应与设备记录一致;本地 Fake-IP 答复须结合实际请求与日志核对。能完成服务请求才说明该访问路径恢复。
模块只匹配 ts.net 后缀。短名称失败、其他私有域名失败或非 Tailscale 设备失败,仍需检查各自的 DNS、搜索域和网络路径。局域网设备的请求只有实际交给已配置的解析器时才能使用这项策略,不应据此宣称整网所有应用自动恢复。
本次修改验收
- tailscaled 在线,测试设备与服务仍可按原 IP 访问
- 运行配置包含预期的 ts.net 解析策略,没有被其他模块覆盖
- 路由器的完整 MagicDNS 名称解析与真实服务请求成功
- 普通公网域名仍正常;从实际使用的局域网设备另测域名解析和服务访问
- OpenClash 正常重启后策略仍在,同一组测试仍成功
- 原模块状态、accept-dns 值和独立备份都有记录
没有恢复或影响其他设备,怎样撤销?
回到覆写模块窗口,恢复 Tailscale 模块修改前的开关和适用范围,再重启 OpenClash,确认运行配置中的策略已恢复。如果还临时改过 accept-dns,按记录恢复原值,再测试普通联网和原来的 Tailscale 访问;无需删除整个配置目录。
升级本身失败时,保留安装错误和当前数据,按升级前备份恢复原插件设置、订阅与自定义资源。恢复设置与降级程序不是同一操作,不假定旧插件能读取新版全部配置;没有兼容依据时先停用本次模块,恢复此前可用方案。
仍失败时生成 OpenClash 调试日志,反馈插件、内核与 Tailscale 版本,本机代理和 DNS 设置、最终域名策略、路由器与局域网差异,以及 IP、完整名称、两个解析器的对照结果。分享前删除订阅令牌、密码、设备身份和私有域名,不把完整原始日志公开。
