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

比较系统 DNS、自定义 DNS、DNS over HTTPS 三种解析方式的行为差异,给出配置文件中 DNS 字段的写法与验证方法。

本文速览

本文适合已经在 Shadowrocket 中导入自己的订阅、希望排查域名解析问题的用户。先区分解析器地址、查询传输方式与连接出站,再通过当前配置的 [General] 和 dns-server 做单项修改,最后用同一域名、同一网络与记录结果验证;不要仅凭网页是否打开判断 DNS 是否生效。

一、DNS 设置决定什么,不决定什么

Shadowrocket(小火箭)中的 DNS 设置用于影响域名解析:把域名转换为后续连接需要的 IP 地址。系统 DNS 指使用当前系统网络提供的解析器;自定义 DNS 通常指明确指定解析器地址;DNS over HTTPS 则说明查询通过 HTTPS 传输。这三个说法不是完全互斥的分类,因为手动指定的解析器也可以采用 DNS over HTTPS。

DNS 与代理出站是不同环节。解析得到地址,并不表示后续连接一定使用 Proxy;使用加密 DNS,也不表示所有 DNS 请求一定经过已有服务器。实际行为还取决于当前配置、Global Routing、解析请求自身的路由,以及目标域名是否交由远端解析。

域名请求 解析路径选择 地址结果 连接规则匹配 目标连接

上面的流程用于区分职责,不代表每次连接都必须先在本地完成查询。具备域名信息时,DOMAIN-SUFFIX 等域名规则可直接参与匹配;部分连接也可能把域名交给远端处理。IP-CIDR、GEOIP 等依赖地址信息的规则,则需要结合实际解析和规则选项理解。

二、系统 DNS、自定义 DNS 与 DNS over HTTPS 的选择

先保留能稳定工作的基线。当前网络提供的 DNS 能正确解析所需域名时,系统 DNS 便于适应 Wi-Fi、蜂窝网络以及内部网络。需要排查特定解析器,或希望固定查询目标时,再测试自定义 DNS;需要加密客户端到解析器之间的查询传输时,再评估 DNS over HTTPS。

设置方式 查询目标与传输 适用检查 主要边界
系统 DNS 使用系统当前提供的解析器;传输由实际网络设置决定。 保留网络默认行为,检查内部域名和登录网络。 切换网络后,解析器与解析结果可能改变。
自定义传统 DNS 指定 IP 地址;普通 DNS 通常使用 UDP 53,必要时使用 TCP 53。 对比默认解析器与指定解析器的可达性和回答。 明确指定地址本身不提供传输加密。
DNS over HTTPS 指定 HTTPS 查询端点,通常使用端口 443。 验证加密查询通道以及端点连通性。 依赖 HTTPS 建连、证书验证与端点可用性。
53
传统 DNS 的标准服务端口,使用 UDP 或 TCP
443
HTTPS 的默认端口,也是常见 DoH 端点端口
2 类
常见地址记录:A 对应 IPv4,AAAA 对应 IPv6

DNS over HTTPS 保护的是到解析器这一段的查询传输,解析器仍然能够处理查询内容。它不会替代访问网站时的 HTTPS,也不能保证更低延迟。首次建立加密连接、网络阻断、解析器距离与缓存状态,都可能影响查询耗时。

结论:按故障目标选择,不按名称判断速度

默认解析正常时保留基线;默认解析异常时先测试一个明确的解析器;需要验证查询传输加密时再单独切换 DoH,并保持其余配置不变。

三、在 Config 中修改 dns-server

先在 Home → Global Routing 确认当前模式,再到 Config 核对实际启用的配置。以下验证过程以 Config 模式为基线。Proxy、Direct 会改变连接处理方式;若使用 Scene,应先确认当前场景对应的配置与路由姿态,避免切换网络时基线随之变化。

  1. 在 Config 中识别当前使用的配置,先保留一份原配置副本,记录原有 dns-server 值。
  2. 打开该配置的编辑菜单,进入 Edit Plain Text。查找已有的 [General] 段,不要重复新增同名段落。
  3. 在已有 [General] 中替换 dns-server 的值。下列三种写法是替代关系,不要同时粘贴三行同名字段。
  4. 保存并确认启用的是修改后的配置,重新连接,再发起新的域名访问。不要只刷新一个仍在复用旧连接的页面。

系统 DNS 写法

[General]
dns-server = system

system 表示使用系统提供的解析器,不是一个固定地址。切换 Wi-Fi 与蜂窝网络后,系统能够获得的 DNS 信息可能不同。若内部域名只在单位或家庭网络中有效,改用公共解析器可能失去这类解析能力。

指定传统 DNS 地址

[General]
dns-server = 1.1.1.1

此处地址用于展示字段语法,不代表对解析服务的推荐或速度结论。需要填写多个解析器时,可使用逗号分隔,例如 dns-server = 1.1.1.1, 1.0.0.1;不要把列表顺序当作“第一个失败才查询第二个”的保证。为便于定位问题,首次测试只保留一个解析器。

DNS over HTTPS 写法

[General]
dns-server = https://1.1.1.1/dns-query

此端点仅用于说明完整 URL 的写法。DoH 地址必须是解析服务实际提供的 HTTPS 查询端点,不能把普通网站首页当作 DNS 服务器。使用 IP 地址形式的 HTTPS 端点时,服务证书必须覆盖该 IP;不要把任意域名端点替换成解析出来的 IP,也不要通过关闭证书验证处理失败。

配置写入检查

入口
Config → 当前配置 → Edit Plain Text
段落
[General]
字段
dns-server
修改范围
每轮仅替换一个 DNS 值

在原配置中修改对应行,不要用片段覆盖整个配置。

生效条件检查

配置
启用刚刚保存的配置
模式
确认 Home → Global Routing
连接
重新连接后发起新请求
自动连接
核对 Settings → On Demand

On Demand 负责按条件连接,不负责选择 DNS 解析器。

四、用可重复步骤验证 DNS 是否生效

网页能够打开,只能说明这次访问完成,不能独立证明查询使用了哪一个解析器。浏览器可能复用已有连接,应用可能保留地址缓存,部分应用还会使用自己的加密解析。验证应把“查询是否发生”“查询得到什么”和“随后如何连接”分开记录。

  1. 固定测试条件。使用同一台设备、同一网络、同一个已有服务器与同一个 Global Routing 模式。记录配置文件名和当前 dns-server 值。
  2. 保留系统基线。先用 system 测试一个已知正常的域名与一个出现问题的域名,分别记录成功、超时或域名不存在等结果。
  3. 只修改 DNS。改为单个自定义解析器,重新连接,结束测试应用后再打开并重试。新连接有助于减少连接复用影响,但不等于清除了所有系统和应用缓存。
  4. 检查可用记录。在 Shadowrocket 提供的日志或请求记录中,查找测试域名、查询类型、返回地址与失败提示;若能看到解析器或出站信息,一并记录。Data 中流量增加本身不是 DNS 生效证据。
  5. 最后测试 DoH。替换为 HTTPS 端点,重复同一流程。端点返回网页、HTTP 错误或 TLS 错误时,先处理端点问题,不要同时更改规则。
记录项应记录的内容用途
网络与配置Wi-Fi 或蜂窝、配置名、Global Routing 模式排除测试条件变化
查询域名、A 或 AAAA、成功或具体错误区分地址族与查询失败
回答返回 IP、可见的 TTL、是否来自缓存识别缓存与结果变化
后续连接命中规则、出站策略、连接结果区分 DNS 与路由问题

不同解析器返回不同 IP 不一定是错误。CDN 调度、解析器位置、缓存更新和网络环境都可能改变回答。应结合目标能否建立连接、证书是否正确,以及故障能否重复出现判断,不以两次 IP 不一致直接认定解析异常。

五、按故障现象缩小检查范围

出现故障时先回到刚才的单变量测试。尤其不要同时修改 DNS、Global Routing、已有服务器和规则文件,否则即使恢复访问,也难以确定是哪一项起了作用。

结论:有地址但连不上,先停止更换 DNS

确认查询已成功后,把检查重点移到命中规则、出站路径和目标连通性;只有回答错误或解析路径异常时,才继续调整解析器。

六、保存结果与恢复原设置

确定可重复的结果后,再决定是否长期保留修改。系统 DNS 适合依赖当前网络解析的环境;指定解析器适合明确控制查询目标;DoH 适合需要加密查询传输且端点稳定可达的环境。三者都需要结合实际网络验证,不存在仅凭字段名称就能确定的统一最优项。

  1. 记录有效配置的 dns-server、测试网络和故障现象,不记录已有订阅中的凭据。
  2. 分别在常用 Wi-Fi 与蜂窝网络复测,确认切网后不会依赖已经不可达的解析器。
  3. 如果使用远程配置,更新后重新核对 [General];服务器订阅刷新与 DNS 配置修改不是同一项操作。
  4. 需要撤销时,恢复备份中的原值并重新连接。原先使用系统解析时,可恢复为 dns-server = system。

本文步骤以 iPhone、iPad 上的配置编辑和排查为主。Shadowrocket 是 Apple 平台的付费客户端,唯一获取入口为 App Store;系统要求、其他设备兼容性与通用购买以 App Store 页面标注为准。应用购买与用户已有订阅分别管理,客户端买断 ≠ 线路套餐。

Shadowrocket 正版下载