Shadowrocket 的 DoH(DNS over HTTPS)设置需要同时核对解析服务地址、当前 DNS 选项和连接策略。本文面向已经有自己的服务信息、希望启用加密 DNS 的 iPhone 与 iPad 用户,按 Settings → DNS 的操作思路说明如何填写、验证和回退。应用内字段会因版本和配置而异,操作时以设备上实际显示的选项为准。
DoH 是什么?开启后改变了哪一段连接
DoH 是否等于“所有流量都加密”?不是。DNS 负责把域名解析为 IP 地址;DoH 使用 HTTPS 传输 DNS 查询,主要保护设备到所选 DNS 服务之间的查询内容,不能替代 Shadowrocket 的代理连接,也不会自动加密目标网站本身的连接。访问 HTTPS 网站时,网站连接仍由网站的 TLS 保护。
开启 DoH 后,DNS 服务提供方仍会收到它所处理的查询。DoH 能减少同一网络中间环节直接读取或篡改 DNS 请求的机会,但不能让查询对 DNS 服务提供方不可见,也不能保证所有应用请求都一定使用同一解析器。选择服务前应查看其隐私说明、可用性和适用地区,并确认自己信任该服务。
Shadowrocket 的 DNS 设置与 Home → Global Routing 不是一回事。DNS 设置决定如何处理域名解析;Global Routing 的 Config、Proxy、Direct 或 Scene 决定连接流量采用哪种处理方式。切换路由模式不会自动修正 DoH 地址,填写 DoH 地址也不会自动改变规则。
设置前先记录当前 DNS 与连接状态
改完后网页打不开,怎样判断是新 DNS 导致的?先留一份可还原的记录。记录当前网络是 Wi-Fi 还是蜂窝数据、Home 中的连接状态、Global Routing 当前值,以及 Settings → DNS 页面中已有的服务器地址和选项。若 DNS 来自正在使用的配置,也要记下对应配置名称;不要在没有副本时同时修改多个字段。
-
记录当前设置
打开 Settings → DNS,抄下原有 DNS 地址、模式和相关开关。若页面没有单独的 DNS 菜单,先查看 Settings 中与 DNS 或 Encrypted DNS 相关的实际选项,不要猜测隐藏字段。
-
确认基础网络
先确认 Safari 能访问当前网络允许访问的网页。公共 Wi-Fi 若要求网页登录或接受条款,应先完成认证,再进行 DNS 测试。
-
保留配置副本
在 Config 中确认正在使用的配置,并按自己平时的配置管理方式保留副本。订阅配置可能在更新后覆盖本地修改;不要把临时改动误认为已写入远端订阅。
-
准备逐项测试
选定一个平时可访问的域名和一个自己需要使用的直连域名。每次只修改一个 DNS 项,保存后用相同网络和目标重新测试,避免同时切换服务器、规则与 DNS。
Settings → DNS 中具体显示什么?不同版本和配置可能呈现 DNS 地址、加密 DNS 类型、开关或其他字段,名称及布局以当前应用为准。若看到明确的 DoH、DNS over HTTPS 或 HTTPS 选项,再按该项要求填写;如果只看到普通 DNS 地址,不要把 HTTPS URL 当成普通 IP 地址填入。
如何填写 DoH 地址并保存
DoH 地址应该填 IP 还是 URL?如果当前字段明确要求 DoH 服务地址,应填写服务提供方公布的完整 HTTPS endpoint,而不是只填域名或 DNS 端口。以下地址仅用于说明 URL 的写法;使用前请自行核对服务方当前公布的 endpoint、隐私政策和可用性,不代表任何服务的推荐。
DoH 地址示例
- Cloudflare 示例
https://cloudflare-dns.com/dns-query- Google 示例
https://dns.google/dns-query- 填写前核对
- 确认服务方公布的完整 HTTPS endpoint
示例用于辨认 URL 格式,不表示服务可用性或隐私选择适合所有人。
逐项检查
- 字段类型
- 必须是 DoH / HTTPS 地址字段
- URL 结构
- 保留 https://、主机名与路径
- 保存后
- 确认页面显示新值,再重新发起请求
不要把示例 URL 填入普通 DNS IP 地址栏,也不要自行删掉路径。
实际操作时,进入 Settings → DNS,找到明确标注 DoH、DNS over HTTPS 或同义含义的选项,按页面要求启用加密 DNS 并填写完整 endpoint。若页面另有普通 DNS 地址、备用 DNS 或其他解析模式,先不要顺手更改;这些项目可能承担不同作用,具体行为需结合应用当前界面和配置理解。
保存后返回 DNS 页面,检查地址是否仍完整显示,尤其是 https:// 和末尾路径。不要将 URL 前后加引号、空格或自定义端口,也不要把网站首页地址当作 DNS endpoint。若应用提示格式无效,先对照服务方公布的地址和字段类型,而不是关闭证书检查来绕过提示。
怎样验证 DoH 是否生效
页面能打开就能证明 DoH 生效了吗?不能。网页可打开只能说明某次请求成功,无法单独证明 DNS 查询使用了哪种传输。验证时应同时看应用设置状态、DNS 查询结果和网络表现;公开的 DNS 检测页面可以提供线索,但检测网站的结果也受浏览器缓存、系统缓存和测试方法影响。
- 先看设置:回到 Settings → DNS,确认 DoH 选项仍启用,endpoint 没有被截断或恢复为旧值。
- 再发起新请求:关闭目标网页后重新打开,或使用此前没有访问过的域名,降低浏览器缓存对结果的干扰。不要把重复加载同一已缓存页面当作充分测试。
- 核对连接状态:确认 Home 中的连接状态和 Home → Global Routing 模式符合本轮测试条件。若使用 Config,确认当前选中的配置确实包含预期规则。
- 做网络对照:在 Wi-Fi 与蜂窝数据下分别测试相同目标,并记录是否只有某一种网络失败。网络间差异可能指向 endpoint 可达性或网络策略,不足以单独证明 DNS 配置错误。
- 使用检测结果作参考:若使用 DNS 检测服务,结合其说明判断结果;一次检测显示某个解析器,并不一定能覆盖所有应用、所有域名或缓存状态。
缓存要不要清?如果刚改完仍看到旧解析结果,可先重新发起新请求,并等待相关缓存过期;需要清理时,使用设备或应用提供的正常清理方式。不要通过连续切换多个 DNS 服务来“刷新”结果,否则无法判断是哪一项改变了行为。
结论:配置状态与解析结果要分开验证
Settings → DNS 显示正确,只能确认配置已保存;网站可访问,只能确认请求成功。两者都检查,并用同一网络、同一域名做修改前后的对照,才能更可靠地判断 DoH 是否按预期工作。
直连域名与 DNS 路由如何处理
域名规则指定 DIRECT 后,DNS 查询一定也会直连吗?不能仅凭规则末尾的 DIRECT 推断 DNS 请求采用了相同路径。规则通常处理目标连接策略,而 DNS 请求由 DNS 设置、当前配置和解析流程共同影响。不同配置下的处理细节可能不同,应以应用实际设置和请求结果为准。
先区分两类目标,再决定是否调整
需要直连的域名
- 先确认域名规则是否匹配目标主机。
- 检查规则的策略是否为预期的 DIRECT。
- 用当前网络直接访问同一域名作对照。
需要代理的域名
- 检查 Home → Global Routing 是否使用 Config。
- 确认域名规则命中预期的代理策略。
- 检查 DNS 服务 endpoint 在当前连接下是否可达。
先确认目标连接的策略,再单独验证 DNS 查询路径;不要把 DIRECT 规则当作 DNS 加密或 DNS 直连的开关。
直连域名解析异常时,应该把整个 DNS 换掉吗?先检查该域名的规则、当前网络是否能直接访问,以及是否存在缓存结果。若只有少数域名异常,记录域名、命中策略和网络类型,避免用全局 DNS 改动扩大影响。不要为了单个目标随意添加宽泛的 DOMAIN-KEYWORD 规则。
DoH endpoint 本身也需要能够连接。若其主机名无法解析,或者当前网络无法建立到 endpoint 的 HTTPS 连接,设备可能无法完成 DNS 查询。此时检查 endpoint 拼写、服务方状态和当前网络路径;若 endpoint 的连通性依赖某条代理规则,应结合自己配置中的实际规则核对,不要假定 DNS 请求必然先经过代理或必然直连。
网页打不开或解析异常时如何排查与恢复
开启 DoH 后所有网页都无法打开,先不要同时改服务器和规则。回到 Settings → DNS 检查 endpoint 的完整性与选项状态;再使用原先记录的 DNS 设置做一次对照。如果恢复原设置后网页恢复,说明新设置与故障存在关联,但仍需进一步核对 endpoint 可达性、网络差异和配置覆盖情况。
现象:DNS 地址格式无效
原因与解法:可能把 HTTPS URL 填进普通 DNS 地址栏,或漏掉协议头、路径;确认选择的是 DoH 字段,并按服务方公布的完整 endpoint 填写。
现象:启用后网页持续加载
原因与解法:DoH endpoint 可能暂时不可达,或当前网络阻止了相关 HTTPS 请求;先检查网络和 endpoint,再恢复记录的原设置进行对照。
现象:只有部分域名解析异常
原因与解法:可能与缓存、域名规则或目标网络有关;记录异常域名与当前 Global Routing 模式,逐项核对,不要先替换整份配置。
恢复配置的顺序是什么?先回到 Settings → DNS,把相关开关和地址恢复为改动前记录的值;保存后用同一网络和同一域名复测。若原设置由配置文件控制,应检查 Config 中当前文件及其 DNS 项,并留意订阅更新是否覆盖了本地改动。确认恢复后,再决定是否更换自己信任且可访问的 DoH 服务。
DoH 开了,为什么检测结果没变化?
先确认检测请求没有命中缓存,再检查 Settings → DNS 中的开关和 endpoint。检测结果受测试方式影响,不能只凭一项结果判定设置失效。
可以把 DoH URL 填到普通 DNS 栏吗?
不可以。普通 DNS 地址字段与 DoH endpoint 字段用途不同;只有界面明确要求 HTTPS 或 DoH 地址时,才填写完整 URL。
改完后能不能直接删掉原 DNS 记录?
先不要。保留原值直到新设置通过 Wi-Fi、蜂窝网络和常用域名的对照测试;若出现异常,按记录恢复,避免失去可用的回退方案。
排查期间一次只改变一项,记录修改前后的设置、网络类型和测试域名。DoH 是 DNS 传输方式的配置,不是连接服务,也不能替代有效的代理参数或正确的规则;如果恢复原 DNS 后仍无法访问,应回到基础网络、服务器连接和 Global Routing 分层排查。