Shadowrocket DNS 设置详解:系统 DNS、自定义 DNS 与 DNS over HTTPS 怎么选

讲清系统 DNS、自定义 DNS 与 DNS over HTTPS 的差别、适用场景和填写位置,以及 DNS 设置与规则分流如何配合。

本文速览

DNS 正常时先保留系统设置;需要固定解析器时再填自定义 DNS,需要加密解析传输时选择 DNS over HTTPS。本文适合已有自己的服务商与配置、正在排查域名打不开或分流结果异常的用户,按填写位置、规则匹配与单变量测试说明如何修改,并保留可恢复的基线。

一、先区分域名解析与连接出站

Shadowrocket(小火箭)的 DNS 设置解决“域名对应什么地址”的问题,Global Routing 与配置规则解决“连接从哪条路径出去”的问题。更换 DNS 不等于切换服务器,也不会自动修复服务器认证失败、端口不可达或线路拥塞。只有先把这两部分分开,才能避免网页打不开时同时改动多个设置。

域名请求 解析处理 规则判定 连接出站 响应返回

这条流程表示排查时的逻辑关系,不表示每次连接都必须先在本机完成解析。DOMAIN-SUFFIX 可以直接按域名匹配;IP-CIDR、GEOIP 等基于地址的规则可能需要解析结果。代理连接是否由远端解析,还取决于协议、请求形式与配置,不能看到网页能打开就断定所有 DNS 都走了代理。

53
传统 DNS 的常用 UDP / TCP 端口
443
DoH 使用 HTTPS 时的默认端口
4 种
Global Routing:Proxy / Direct / Config / Scene

端口号是识别协议的线索,不是填写完整配置的替代品。DoH 服务可以使用指定的非默认端口;传统 DNS 的 TCP 回退也不能因平时主要观察到 UDP 就被忽略。防火墙限制、网络认证页和解析器自身故障,都可能影响最终结果。

二、系统 DNS、自定义 DNS 与 DoH 的选择依据

“系统 DNS”与“自定义 DNS”描述解析器从哪里取得,“DNS over HTTPS”描述查询采用什么传输方式。这不是三个完全互斥的概念:手动填写一个 DoH 端点,同样属于自定义解析器。应先判断是否需要改变当前解析结果,再决定是否需要改变传输方式。

设置方式 适用条件 修改前要确认
系统 DNS 当前网络能正常解析,或需要访问单位、校园、家庭内网域名 Wi-Fi 或蜂窝网络提供的解析器是否可用
自定义传统 DNS 需要固定解析器,且已取得可信的解析器地址 该解析器允许当前网络访问,UDP / TCP 53 未被阻断
DNS over HTTPS 需要通过 HTTPS 传输 DNS 查询,已有可用端点 端点完整路径、TLS 证书、域名初始解析与出站路径均正常

系统 DNS 通常更容易保留当前网络的内部域名解析能力。公共解析器未必认识单位内部的主机名,把它替换为固定公网解析器后,外部网站可能正常,内部系统却打不开。这是解析范围变化,不应直接判断为 Shadowrocket 的连接故障。

DoH 加密的是设备到所选解析服务之间的 DNS 查询传输,不会让解析服务看不到查询,也不替代网站自身的 HTTPS。它增加了端点连接与 TLS 建立等环节,实际延迟取决于网络、连接复用和缓存,不能承诺一定比传统 DNS 更快。

结论:内网域名异常时先恢复系统 DNS

如果只在更换解析器后出现内部域名失败,先恢复系统 DNS,保持服务器与 Global Routing 不变,再重复访问同一域名;不要同时修改规则和协议。

三、在 Config 中填写 DNS,并保留恢复点

以下以 iPhone / iPad 的配置文件设置为说明对象。先打开 Config,找到当前启用的配置文件,进入其编辑菜单,再检查 General 中的 DNS Server。不同版本的编辑入口与字段排布可能变化,本文同时给出配置键名,便于在文本编辑视图核对。不要把 DNS 端点填进 Home → Add Server 的服务器地址栏。

  1. 在 Home 记录当前选中的服务器与 Global Routing 姿态,并在 Config 确认当前启用的文件。
  2. 复制或导出该配置作为恢复点。只在副本里修改 DNS,保留原配置不动;导出内容按敏感资料保存。
  3. 进入 Config → 当前配置的编辑菜单 → General → DNS Server;若使用文本编辑,查找 [General] 下的 dns-server。
  4. 填入已有解析器的地址或完整 DoH 端点,保存后确认副本已启用。需要时断开再连接,使当前会话重新应用设置。
  5. 用同一个目标域名进行测试,记录是否成功和错误类型;失败时切回原配置,而不是继续叠加修改。

系统 DNS 基线

位置
Config → 配置编辑 → General
配置节
[General]
配置键
dns-server
值
system

以系统解析器作为对照,先确认原网络是否可用。

DoH 填写要素

协议
https://
主机名
解析服务指定的端点域名
路径
以服务说明给出的完整路径为准
默认端口
443

不要仅凭路径习惯猜测端点,也不要用浏览器能否显示网页判断服务有效。

下面两段是互相替换的写法,不是要求在同一配置里重复声明两个 dns-server。第二段使用保留示例域名说明语法,不能直接作为可用服务;实际填写应采用用户已经取得的解析端点,本文不推荐任何解析服务。

# 系统 DNS 基线
[General]
dns-server = system
# DoH 语法示例:示例地址不可直接使用
[General]
dns-server = https://dns.example.com/dns-query

带主机名的 DoH 端点存在初始解析需求:设备需要先获得端点域名的地址,才能建立 HTTPS 连接。不要随意把主机名替换成 IP 地址,这可能导致证书名称校验或服务路由失败。若当前网络连端点域名都无法解析,先恢复可工作的基线,再按服务说明处理初始解析。

四、DNS 与规则分流如何配合

需要验证配置文件中的规则时,在 Home 将 Global Routing 设为 Config。Proxy 与 Direct 是不同的全局路由姿态,不能拿它们的测试结果直接证明某条配置规则生效;Scene 则应先检查实际启用的场景及其对应设置。修改 DNS 前后保持同一姿态,比较才有意义。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY

规则由上向下匹配。上例先处理明确域名,再处理地址范围,最后兜底;不要为了“修 DNS”就把宽泛规则移到最前面,否则可能遮住后面的精确规则。复制示例前应确认现有配置使用的策略名称,避免覆盖原有策略组。

五、用单变量测试定位解析故障

开始测试前,先在 Home 确认已有服务器被选中,再运行 Connectivity Test。它用于建立连接状态的参照,不能代替对全部 DNS 请求的验证。即使测试通过,某个域名仍可能因为解析器返回错误、规则误匹配或网站自身异常而失败。

  1. 固定条件。选择同一个 Wi-Fi、同一个服务器、同一个域名与同一个 Global Routing 姿态;暂时不要更改协议或更新订阅。
  2. 先测基线。启用系统 DNS 配置,记录能否打开、是否提示域名解析错误,以及是否只影响个别网站。
  3. 只换解析器。启用自定义 DNS 或 DoH 配置,重新建立连接并再次访问。首次请求与缓存命中的表现要分开记录。
  4. 再换网络。保持 DNS 配置不变,从 Wi-Fi 切到蜂窝网络。若只在一张网络失败,检查网络认证、端口限制与端点可达性。
  5. 回退复核。恢复系统 DNS 再测一次。仅一次成功不足以判断原因,应检查结果能否重复出现。
观察现象 优先检查 下一步操作
系统 DNS 正常,DoH 持续超时 端点域名、完整路径、连接出站与网络限制 恢复基线,核对端点说明后再单独测试
外部网站正常,单位内部域名失败 是否换成不认识内部域名的解析器 在相同网络下恢复系统 DNS 对照
域名已有解析结果,连接仍超时 规则命中、目标端口与服务器连接 检查连接记录中的实际策略,不再盲目换 DNS
修改后表现暂时不变 应用缓存、现有连接与配置是否启用 重建连接并重开目标应用,确认当前配置

表中是排查分支,不是本文声称进行过的测速结果。若用命令行工具辅助查询,还要确认工具使用的是哪个解析器;系统外单独执行的一次查询,不能证明 Shadowrocket 内部请求采取了同一路径。也不要把 HTTPS 网站地址直接改成 IP 来比较,证书与虚拟主机差异会干扰结论。

六、常见问题与配置保留原则

填了 DoH 后所有网页都打不开,先改哪里?

先在 Config 切回保留的系统 DNS 配置,重新连接并访问原来的目标。恢复正常后,检查 DoH 端点的协议、域名、路径与端口,不要同时更换服务器。若恢复后仍失败,再回到 Home 检查连接与 Global Routing。

DoH 地址能在浏览器打开,就说明填写正确吗?

不能。DoH 端点处理的是规定格式的 DNS 请求,普通浏览器访问可能返回错误状态,也可能显示说明页。应以客户端实际解析结果、连接记录与服务提供的端点说明共同判断,而不是只看页面是否出现内容。

为什么切换 Wi-Fi 后 DNS 表现变了?

系统解析器可能随网络改变,端点可达性和内部域名范围也可能不同。先比较同一配置在 Wi-Fi 与蜂窝下的结果;若连接开关也自动变化,再检查 Settings → On Demand 的触发条件,避免把自动连接行为误判成 DNS 问题。

订阅更新后,刚改好的 DNS 又变回去了怎么办?

先区分服务器订阅更新和远程配置文件更新:前者主要更新服务器条目,后者可能替换配置内容。检查 Config 当前启用文件的来源,保留本地副本并在更新后核对 dns-server;不要把含凭据的完整配置贴到公开页面。

稳定设置的判断标准是:所需域名可以解析,连接采用预期策略,在常用网络下能重复验证,并且保留恢复方法。只要系统 DNS 已满足这些条件,就没有必要为了更换设置而更换设置;需要 DoH 时,也应从一个已知可用的端点开始,而不是一次添加多项无法区分效果的选项。

下载 Shadowrocket