本文适合已经在 Shadowrocket(小火箭)中配置好自己的连接服务、准备调整域名解析的用户。先区分解析器来源与传输协议,再核对当前 Config,最后用固定网络、固定域名和连接记录验证结果。DNS 调整与订阅更新是两件事;网页打不开,也不一定是 DNS 错误。
一、先分清 DNS 解析与连接分流
DNS 的作用是查询域名对应的记录,例如将网站域名解析为 IPv4 的 A 记录或 IPv6 的 AAAA 记录。拿到地址后,客户端仍需要按当前规则建立连接。解析成功只能说明获得了回答,不能证明目标端口可达、TLS 握手成功或网页服务器正常。
在 Shadowrocket 中,DNS 与 Global Routing 相互关联,但不是同一个设置。Global Routing 的 Proxy、Direct、Config、Scene 决定相应的路由行为;DNS 设置决定使用何种解析来源和查询方式。改变其中一项,不应被理解为另一项已经同步改变。
上面是简化流程,不表示每个请求都必须先在设备上解析。域名规则可能先命中;某些代理连接会将域名交给远端处理。缓存命中也可能使本次访问不产生新的上游查询。因此,看不到新的 DNS 请求,不能直接断定设置没有生效。
- 域名规则:
DOMAIN-SUFFIX,example.com,DIRECT按域名后缀匹配,不等于指定 DNS 服务器。 - 地址规则:
IP-CIDR或GEOIP按目标 IP 判断,某些匹配过程可能需要先解析域名。 - 兜底规则:
FINAL处理前面未匹配的请求,不负责选择解析器。
二、系统 DNS、自定义 DNS 与 DoH 的区别
“系统 DNS”和“自定义 DNS”主要说明解析器从哪里取得;DNS over HTTPS,简称 DoH,主要说明查询通过什么协议传输。这三个名称并非严格互斥:用户手动指定一个 DoH 端点,也是在自定义解析器。选择时应同时回答“向谁查询”和“怎样发送”两个问题。
| 设置取向 | 解析来源与传输 | 适用情况 | 优先核对 |
|---|---|---|---|
| 系统 DNS | 使用当前系统网络环境提供的解析器;具体传输取决于系统配置。 | 作为初始基线,或需要访问当前网络的内部域名。 | Wi-Fi 与蜂窝网络提供的解析器可能不同。 |
| 自定义传统 DNS | 手动指定服务器地址,传统查询通常使用 UDP 53,也可能使用 TCP 53。 | 已知某个解析器可达,或需要查询单位、家庭网络中的内部记录。 | 地址是否可达、是否接受当前来源的查询、53 端口是否受限。 |
| DNS over HTTPS | 向支持 DoH 的端点发送 HTTPS 请求,通常使用 443 端口。 | 需要加密查询传输,且端点与其连接路径均已确认可用。 | 完整端点、证书校验、端点域名的初始解析及实际出站路径。 |
DoH 加密的是客户端到该解析器之间的查询传输,不会让解析器无法看到所查询的域名,也不自动决定后续网站流量的出口。系统 DNS 也不必然等于明文 DNS;设备上的系统解析配置可能另有加密设置,排查时应把它作为变量记录下来。
选择依据:先验证可达性,再比较传输方式
如果当前系统 DNS 能稳定回答、内部域名也正常,先保留它作为对照组。只有确认存在解析故障或明确的加密传输需求后,再单独测试自定义 DNS 或 DoH,避免同时更换解析器与路由姿态。
三、修改前先确认正在使用的 Config
先在 Home 确认当前连接状态与 Global Routing,再进入 Config 核对正在使用的配置文件。编辑了另一份文件,即使保存成功,也不能证明当前连接已经采用其中的 DNS 设置。界面入口与编辑方式以实际应用显示为准;检查配置文本时,可搜索 [General] 和 dns-server。
- 记录基线:写下当前网络是 Wi-Fi 还是蜂窝、Global Routing 的选择、活动配置文件名称,以及一个确实出现问题的域名。
- 保留副本:在 Config 中先保存可恢复的配置副本,再改 DNS。不要在同一次测试中同时修改规则、连接协议与 DNS。
- 检查现有设置:查看配置里是否已经指定解析器,并检查 Settings 中是否存在会影响当前解析行为的设置。不要仅凭某个输入框的内容推断最终生效值。
- 只改一个变量:从系统解析切换到一个已确认可用的解析器。测试 DoH 时,使用解析器管理员提供的完整 HTTPS 端点。
- 保存并重连:回到 Home 重新建立连接,再复测相同域名。若当前网络需要先完成 Wi-Fi 门户认证,应先完成认证。
下面两张卡描述的是两次独立测试,不要求把两组参数同时写入。系统解析的配置文本可用 dns-server = system 表达;自定义传统 DNS 则需要真实可达的服务器地址。DoH 属于另一种传输方式,不能仅给普通 IP 地址加上 https:// 就认为服务器已经支持。
测试 A:系统解析基线
- 检查位置
- Config 中当前配置的 [General]
- 参数名称
- dns-server
- 参数取值
- system
- 固定条件
- 同一网络、同一 Global Routing、同一目标域名
若已有其他 DNS 相关设置,先记录其内容;不要只增加一行就认定所有覆盖关系已经消失。
测试 B:自定义传统解析
- 检查位置
- Config 中当前配置的 [General]
- 参数名称
- dns-server
- 地址要求
- 填写用户已确认可达的 DNS 服务器 IP
- 端口检查
- 传统 DNS 通常需要 UDP 53 或 TCP 53 可达
例如 192.168.1.1 只有在它确实是当前网络的 DNS 服务地址时才适用,不能作为通用地址照抄。
四、使用 DNS over HTTPS 时核对四项条件
DoH 端点不是普通网站首页。它需要支持相应的 DNS 消息格式;浏览器能打开某个 HTTPS 网站,只能说明该网页路径可访问,不能证明同一域名提供 DoH 服务。填写时保留管理员给出的完整路径和必要参数,不要把主机名、路径或协议头自行删改。
- 端点格式:
https://example.com/dns-query仅是结构示意,不是可直接使用的解析服务;实际路径不一定是/dns-query。 - 证书与时间:HTTPS 连接需要通过证书校验。设备时间错误、端点证书异常或网络认证页面拦截,都可能使连接失败。
- 初始解析:端点使用域名时,首次建立连接仍需要取得该域名的地址。若其初始解析依赖一个不可达的解析路径,DoH 本身也无法建立。
- 出站路径:不要假设 DoH 必然跟随某个代理出口。应结合活动配置、规则和连接记录,检查实际路径及可达性。
不要通过关闭证书校验来处理 DoH 故障。先恢复已知可用的 DNS,确认设备时间正确,再检查端点是否可达以及配置是否仍指向原来的地址。若只有特定 Wi-Fi 失败而蜂窝正常,应优先排查该 Wi-Fi 的认证状态和网络限制。
五、改 DNS 后怎样验证真正生效
验证需要同时看“解析结果”和“实际连接”,不能只看网页是否打开。网站可以命中缓存,浏览器也可能复用已有连接。先固定网络和 Global Routing,保存前后记录,再使用新请求做对照;不要在测试中途切换 Wi-Fi 与蜂窝。
- 记录修改前现象:保存故障域名、测试时间、当前配置,以及具体错误属于域名查询失败、连接超时还是 TLS 错误。
- 保存配置后重连:在 Home 断开并重新连接,关闭测试页面的旧标签,再发起新的访问。重连有助于应用新设置,但不保证清除所有系统与应用缓存。
- 查看解析证据:在可用的 DNS 查询或诊断记录中核对域名、A/AAAA 回答和错误状态;若有上游服务器信息,再核对它是否符合预期。
- 查看连接证据:检查该请求匹配的规则、目标地址和实际出口。解析地址变化,不能单独证明出口已改变。
- 重复并回退对照:在相同条件下测试数次,再恢复原设置复测。记录稳定出现的差异,不用一次加载速度判断全部结果。
| 观察到的现象 | 可以说明什么 | 下一步核对 |
|---|---|---|
| 返回 NXDOMAIN | 解析器回答该名称不存在,不等同于查询超时。 | 检查拼写、完整域名,以及是否为只在内部网络存在的名称。 |
| 查询超时,没有回答 | 当前查询路径未在等待时间内完成。 | 检查解析器地址、网络可达性和端点连接,不先改网站分流规则。 |
| 获得 A/AAAA,但网页超时 | 解析阶段已有结果,故障可能在后续连接。 | 检查目标连接、IPv6 路径、规则匹配和远端可达性。 |
| 更改 DNS 后地址不同 | 可能是解析器、缓存或内容分发调度造成差异。 | 继续核对实际访问是否稳定,不能只凭 IP 不同判断对错。 |
判断顺序:有回答但连不上,先查连接层
若故障域名已经获得 A 或 AAAA 回答,先保留 DNS 设置,检查规则命中与目标连接。只有查询本身超时、返回异常或内部名称无法解析时,才继续对照解析器,避免反复修改无关参数。
六、常见问题:DNS、分流与自动连接的边界
改了 DNS,为什么检测页面还是显示原来的网络信息?
先分清页面显示的是公网出口 IP,还是其观察到的递归解析器地址。DNS 设置不直接改变公网出口;解析器也可能使用多个出口地址。回到 Home 核对 Global Routing,再结合新请求的解析与连接记录判断,不把单个页面标签作为唯一证据。
公共网站正常,家里的设备名称却打不开,怎么办?
先恢复系统 DNS 做对照,确认家庭路由器是否提供该名称的记录。公共解析器通常不知道私有网络里的内部名称;以 .local 结尾的名称还可能涉及 mDNS,而非普通上游 DNS。不要为解决内部名称问题盲目更换公共解析器。
启用 DoH 后所有域名都超时,先改哪一项?
先恢复修改前的 DNS 并重连,确认基础访问恢复,再单独检查 DoH 完整端点、设备时间和端点初始解析。不要同时换连接服务器或删除全部规则,否则无法区分是端点不可达还是路由变化。
断开后又自动连接,影响 DNS 对照测试怎么办?
检查 Settings → On Demand,并在测试期间记录或临时停用相关自动连接条件。回到 Home 确认实际状态后再测试,完成后恢复原设置。On Demand 控制按条件连接,不是 DNS 服务器的选择入口。
网页能打开了,是否就能确认所有查询都使用 DoH?
不能。缓存、应用自己的解析方式与远端解析都可能影响结果。应检查新请求的可用诊断记录;如果需要严格确认查询传输,还需结合受控网络或解析端日志。缺少这些证据时,只能确认当前访问恢复,不能扩大为所有查询路径的结论。
保留一份已知可用的 Config,并把每次调整限制为一个变量,是后续排查的基础。需要继续检查规则或连接授权时,可查看排查手册;首次配置与导入用户自己的订阅,可按教程逐项操作。