v2ray节点购买

Shadowrocket DNS 设置教程:系统 DNS、自定义 DNS 与 DoH 怎么选

更新于 2026-11-04 · v2ray.tattoo

简答:Shadowrocket 的 DNS 设置主要通过应用内全局设置(Settings → DNS)或当前配置文件的 `[General]` 段(如 `dns-server`、`doh-server`)来完成。若遇到节点能测速但网页打不开、域名解析失败,通常需要将系统默认 DNS 更改为可靠的自定义 IP 或加密 DoH 服务。修改时坚持“一次只改一个变量”,并在修改后断开重连以清除旧缓存。

定义:Shadowrocket DNS 设置是指在 iOS 代理客户端中指定域名解析服务器(如系统 DNS、常规 IP 地址或加密的 DoH 服务器)的过程,用于将网址转换为 IP 地址并决定流量如何走向路由规则。

Shadowrocket DNS 设置的两种入口与基本概念

在 iOS 的 Shadowrocket(小火箭)中,DNS 设置主要有两个地方可以控制:一是应用全局的 Settings(设置)→ DNS,二是当前正在使用的 Config(配置)文件中的 [General] 段。这两者可能会互相影响,通常优先以当前活动配置文件的定义为准。

  • 系统 DNS(system):默认选项。直接调用 iOS 蜂窝网络或 Wi-Fi 当前分配的运营商 DNS。优点是连接兼容性好,缺点是可能存在运营商 DNS 污染或解析慢。
  • 自定义 DNS(IP 地址):如 223.5.5.5、1.1.1.1 等。通过直接指定一个或多个公共 DNS 服务器,提高解析速度并减少劫持。
  • DoH(DNS over HTTPS):通过加密的 HTTPS 协议进行域名解析(例如 https://dns.alidns.com/dns-query),能有效防止 DNS 查询被监听或中间人篡改。

三种 DNS 方式的对比与适用场景对照

为了帮助你在不同网络环境下做出选择,可以参考下表进行对照配置:

Shadowrocket 常见 DNS 填写格式与配置示例

如果你通过文本编辑器修改配置文件的 [General] 段,请参考以下常见字段的正确写法。注意:不要将 DoH 的 URL 网址直接填入普通的 IP 格式字段中。

[General]
# 使用系统默认 DNS
dns-server = system

# 或者使用自定义 IP(多个用逗号隔开)
# dns-server = 223.5.5.5, 1.1.1.1

# 如果使用 DoH 加密解析,需配置 doh-server
# doh-server = https://dns.alidns.com/dns-query

# 确保 IPv6 开关与当前网络及节点匹配
ipv6 = false

操作提示:修改前请先备份当前的 Config 文件。如果从第三方导入了订阅,每次更新订阅可能会覆盖你手工修改的配置文件内容,建议通过自定义模块或在本地安全副本中调整。

节点测速正常但网页打不开?DNS 故障排查步骤

假如你遇到了节点延迟很低、测速正常,但大部分或部分网页无法加载的情况,请按照以下四个步骤逐步排查:

  1. 检查当前活动配置:确认你修改 DNS 的配置文件正是当前主界面勾选正在使用的那一份,避免改错文件。
  2. 断开并重建 VPN 隧道:Shadowrocket 在修改 DNS 后,必须关闭连接(主开关拨到关闭)再重新开启,以彻底清除旧的 DNS 缓存和系统套接字。
  3. 测试系统或自定义切换:暂时将 dns-server 改为 system 或切换至公共 DNS(如 1.1.1.1),排除由于某一个特定 DNS 服务器宕机或被拦截导致的解析失败。
  4. 排查路由与 IPv6 冲突:若部分海外网站无法打开,可能是由于本地运营商或代理节点对 IPv6 支持不完善。尝试在设置中将 ipv6 关闭,然后重新测试网页连通性。

Shadowrocket 三种 DNS 模式对比表

DNS 模式配置写法示例优点缺点与适用场景
系统 DNS<code>dns-server = system</code>兼容性最高,不干扰本地网络判断容易遭遇本地 DNS 污染,海外解析可能较慢
自定义 DNS<code>dns-server = 223.5.5.5, 1.1.1.1</code>解析速度较快,可避开部分运营商劫持若所填 IP 在当前网络不可达会导致全部断网
DoH(加密)<code>doh-server = https://...</code>防窃听、防篡改,隐私保护较好配置错误或网络握手失败时会导致解析超时

常见问题

为什么修改了 Shadowrocket 的 DNS 之后网页还是打不开?

修改 DNS 后必须将 Shadowrocket 连接断开并重新打开(重启代理隧道),才能清除旧的 DNS 缓存。此外,如果配置文件的 Global Routing 规则或代理节点本身出现故障,单纯改 DNS 也无法恢复访问。

可以把 DoH 的网址填到 dns-server 字段里面吗?

不可以。dns-server 字段仅支持传统的 IP 地址(如系统自带的 system 或标准 IPv4 地址),DoH 必须使用专属的 doh-server 字段并填写完整的 https:// 链接,否则会导致语法错误或解析失效。

为什么更新订阅后我之前改的 DNS 设置消失了?

因为在线订阅链接通常会完整覆盖并替换你本地的配置文件。若要长期保留自定义的 DNS 修改,建议将配置文件另存为本地文件修改,或通过 Shadowrocket 的模块功能进行覆盖。

相关阅读

参考资料

  1. shadow-doc.com(shadow-doc.com)
  2. shadowrocketwin.com(shadowrocketwin.com)