2026-09-09 · 故障排查 · 约 8 分钟

Shadowrocket DNS 设置说明:延迟测试正常但网页打不开的原因

延迟测试显示正常,网页却解析失败。本文解释 DNS 各设置项的含义,并说明怎样判断问题出在解析环节还是规则环节。

本文速览

延迟数值不能证明目标网站的 DNS、连接与 TLS 全部正常。本文适合已经拥有自己的服务器或订阅、但遇到网页打不开的用户:先固定测试条件,再检查 DNS 回答,最后用 Global Routing 与规则记录区分解析故障和出站故障。每次只调整一项,保留能够恢复的原配置。

01 延迟正常,不等于网站访问链路正常

Shadowrocket(小火箭)的服务器测试与浏览器访问某个域名,并不是同一个请求。不同测试方式覆盖的环节也不同:服务器端口能够建立连接,并不能说明目标域名已经获得正确地址;某个测试目标能够响应,也不能证明另一个网站的所有资源都可访问。

普通网页访问可以按下面几个观察点拆解。实际处理中,规则判断与 DNS 查询可能交错进行,例如域名规则可以先匹配,IP 规则则可能需要解析结果。流程链用于定位问题,不表示应用内部所有请求都严格按同一顺序执行。

域名请求 DNS 解析 规则判断 出站连接 TLS 握手 页面资源

02 先记录现场,再进入 Settings → DNS

打开 Home,记下当前服务器和 Global Routing 的选择,再到 Config 确认使用中的配置。随后进入 Settings → DNS,记录当前 DNS 设置。如果配置文件还包含 DNS 相关内容,也要一起检查;只查看一个页面,可能遗漏配置对解析行为的影响。

本节按设置的作用解释,不把某种配置的默认值当成所有设备的默认值。具体字段与可用选项以当前应用界面为准。检查重点是“向谁查询、怎样到达、查询结果是否被本地指定”,而不是把所有开关同时打开。

检查对象作用需要核对的内容
DNS 服务器接收域名查询并返回结果地址是否录入正确,当前网络能否到达该服务。
DNS 查询传输决定查询如何发送普通 DNS 与加密 DNS 的地址写法不同,不能只替换端口就认为协议也已改变。
本地映射为特定域名指定地址是否遗留过期地址,是否把单个网站固定到了已失效的地址。
配置中的 DNS 内容参与当前配置的解析行为当前启用的 Config 是否就是刚修改的文件,是否存在重复或冲突设置。
IPv4 / IPv6对应不同地址族与网络路径获得 AAAA 回答不等于当前网络的 IPv6 出站一定可用。

下面是协议层面的常见端口,不是要求逐项填入 Shadowrocket 的推荐值。服务可能使用非默认端口,仍需以用户已有 DNS 服务的实际参数为准。加密查询也需要先建立可用连接,不会自动修复错误的路由或失效的服务器。

53
普通 DNS 常用 UDP / TCP 端口
443
DNS over HTTPS 常用端口
853
DNS over TLS 常用端口

结论:先确认查询能到达,再判断回答是否正确

如果当前 DNS 服务本身无法连接,先恢复到已记录的可用设置;如果已经返回地址,则转查该地址对应的出站路径。不要把“有 DNS 回答”和“网页能够打开”当作同一项检查。

03 用同一域名完成一次可复现测试

选择一个确实打不开的完整网址作为测试目标,记录时间和当时使用的网络。不要一边切换 Wi-Fi,一边更换服务器、DNS 和规则,否则即使恢复访问,也无法知道是哪项修改起了作用。

  1. 保存原设置:记录 Home 中的服务器、Global Routing、Config 文件与 Settings → DNS 内容。配置文件编辑前保留副本。
  2. 建立基线:保持原设置,重新请求同一个网址,并查看本次请求对应的连接记录或日志。重点找域名、解析结果、匹配规则、策略与错误信息;可见字段以实际记录为准。
  3. 区分回答与超时:有明确 DNS 响应码时先解释响应码;只有等待超时而没有回答时,先检查 DNS 服务的可达性,不能把超时直接当作域名不存在。
  4. 只改 DNS 一项:如有自己已确认可用的 DNS 设置,可暂时替换进行对照。保存后重新建立连接,再请求相同网址,其他条件保持不变。
  5. 复查缓存影响:重新加载页面可能仍使用已有连接或缓存。必要时关闭相关页面、结束浏览器后重新打开;重新连接也不保证所有应用缓存立即清空。
  6. 恢复并复测:如果没有改善,恢复原 DNS,继续检查规则和出站。有效修改也应再次测试,避免把网站临时恢复误认为设置已修复。

04 读懂 DNS 错误,不把所有超时归为解析失败

以下是 DNS 响应码与系统网络错误的原文,不是承诺每次都在 Shadowrocket 中显示同样文字。浏览器可能只给出简化提示;只有在诊断结果或日志中实际看到这些内容时,才按对应方向处理。

DNS 响应:NXDOMAIN

原因:该回答表示查询的域名不存在,也可能与错误的查询名称或异常回答有关。

解法:先核对完整域名和拼写,再用自己已确认可用的解析路径对照;如果不同解析路径都得到相同结果,向网站管理方确认域名状态。

DNS 响应:SERVFAIL

原因:DNS 服务器未能完成这次查询,可能涉及上游解析、权威服务器或验证环节。

解法:记录域名与发生时间,使用另一条已知可用的解析路径复测;不要把该响应等同于域名不存在,也不要据此关闭 TLS 验证。

系统错误:The request timed out.

原因:请求未在限定时间内完成,这句话本身不能指明超时发生在 DNS、连接还是网页响应阶段。

解法:检查超时前是否已有解析地址和连接记录;没有回答时检查查询路径,已有地址时转查策略、服务器与目标站点连接。

如果记录已经出现有效地址,后面又显示连接失败,排查重点应向出站路径移动。反过来,如果一直没有解析结果,频繁切换网页协议或修改 FINAL 也未必触及真正的断点。

05 用 Global Routing 对照,检查 Config 的规则命中

在 Home → Global Routing 中,Proxy、Direct、Config、Scene 对应不同的路由选择方式。排查时先记录当前选择;若使用 Scene,还需要确认当前场景实际采用的行为。不要仅凭连接开关已经打开,就认定网站一定走了所选服务器。

可以在同一网络、同一服务器与同一目标网址下,短暂对照 Config 和 Proxy。如果 Proxy 可访问而 Config 不可访问,优先检查规则命中和配置差异。但这只是缩小范围:路由改变可能同时改变 DNS 查询的可达路径,因此仍需结合记录确认。

对照现象下一步检查
Proxy 可访问,Config 失败检查目标域名是否命中 DIRECT、REJECT 或错误的策略;同时比较解析结果。
Direct 可访问,Proxy 失败检查所选服务器的实际访问能力、远端解析与目标连接,不要只看延迟数值。
多种路由选择都失败检查域名状态、DNS 回答、当前网络与网站本身,不能直接认定是 Config 规则问题。
换网络后恢复对照两种网络的 DNS 可达性、IPv6 路径与连接限制,暂时保留其余设置不变。

下面只演示规则语法与顺序,使用保留示例域名,不是可直接解决所有网站问题的配置。应在现有规则段中核对对应条目,而不是用这两行覆盖整份 Config。

DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT

完成对照后恢复日常使用的 Global Routing。如果问题由配置修改引起,先回退对应修改,再逐条核对。用户已有订阅的更新主要用于刷新服务器信息,不等于修复当前 Config 中的 DNS 或规则内容;两者应分开检查。

06 常见追问与提交诊断信息

延迟很低,为什么只有部分网页打不开?

延迟测试没有覆盖每个网站及其资源域名。先记录失败网址,在 Config 下查实际命中策略,再对照 Proxy;如果只有图片或登录步骤失败,继续找相应资源域名,而不是反复测试同一个服务器端口。

换了 DNS 就恢复,需要一直保留吗?

先在同一网络复测,并核对原 DNS 是否超时或返回异常结果。若新设置确实稳定且符合自己已有服务的参数,可以保留;同时记录原值。一次成功不足以排除缓存、网站短暂故障或网络切换的影响。

Wi-Fi 不行,移动网络正常,要关 IPv6 吗?

先比较解析出的 A、AAAA 地址及实际连接情况。存在 AAAA 回答不代表 IPv6 路径可用,但也不说明必须永久关闭 IPv6。若要调整相关设置,只把它作为一次单变量对照,并在测试后记录结果或恢复原值。

关闭后又自动连接,怎么做断开对照?

到 Settings → On Demand 核对是否启用了按需连接,记录原状态后暂时停用,再做断开对照。测试结束按原需要恢复。On Demand 控制连接触发,不负责修复 DNS 回答或规则内容。

需要进一步协助时,提交可复现条件比只提交一个延迟数字更有效。记录中若含订阅地址、服务器凭据或个人请求信息,应先遮盖敏感内容,只保留定位问题所需的字段。

App Store 正版核验