DNS 出问题时的表现很有迷惑性:能 ping 通、能连节点,但订阅怎么也更新不了。

DNS 问题导致订阅失败的解决思路

DNS 问题的迷惑性在于它的症状组合很反直觉:

  • 网络看起来正常,能 ping 通
  • 已有的节点也能连上、能用
  • 但订阅怎么都更新不了

如果你遇到这个组合,DNS 的嫌疑非常大。这篇解释为什么,以及怎么处理。

为什么会出现这种组合

关键在于两者用的地址形式不同:

已导入的节点通常直接使用 IP 地址连接,或者使用客户端内部的解析机制。它们不依赖系统 DNS。

订阅地址是一个域名。客户端要访问它,必须先通过 DNS 把域名解析成 IP。

所以当系统 DNS 出问题时,节点照常工作,订阅却取不到——两条路走的不是同一套解析。

三步确认

第一步:在浏览器里打开订阅地址

这是最快的判断方法。

  • 浏览器能打开(显示一串编码内容或提示下载)→ 解析正常,问题在客户端设置,转到订阅更新失败的排查步骤
  • 浏览器提示无法访问、找不到服务器 → 解析或网络层有问题,继续往下

第二步:直接查询解析结果

bash
nslookup 订阅地址的域名部分

macOS 和 Linux 上也可以:

bash
dig 域名 +short

判断结果:

返回情况说明
返回了合理的公网 IP解析正常
查询超时DNS 服务器不可达
返回 127.0.0.10.0.0.0解析被拦截或 hosts 有条目
返回明显不属于该服务的地址解析结果不正确

第三步:换一个 DNS 再查一次

bash
nslookup 域名 1.1.1.1

(用指定的 DNS 服务器查询)

如果换个 DNS 就能拿到正确结果,说明你当前网络下发的 DNS 有问题。

四种处理方式

一、清除本地 DNS 缓存

系统会缓存解析结果。如果缓存里存了错误的结果,即使上游已经恢复,本地仍然用旧数据。

  • Windows: 管理员命令提示符执行 ipconfig /flushdns
  • macOS: sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
  • 手机: 开关一次飞行模式,或重启设备

浏览器也有独立缓存,必要时一并清理。

二、更换系统 DNS

把系统 DNS 改为公共解析服务,绕开当前网络的解析问题。

副作用要知道

更换公共 DNS 后,依赖就近解析的国内 CDN 内容可能被解析到较远的节点,导致国内网站访问变慢。

如果换了之后发现国内站点明显变慢,说明这个副作用比原本的 DNS 问题影响更大,可以改回自动获取。

有一个折中方案:在客户端里配置分流解析(国内域名本地解析、境外域名远程解析),而不是改系统 DNS。

修改位置:

  • Windows: 设置 → 网络和 Internet → 当前网络 → 编辑 DNS 服务器分配
  • macOS: 系统设置 → 网络 → 当前网络 → 详细信息 → DNS
  • iOS: 设置 → 无线局域网 → 当前网络 → 配置 DNS
  • Android: 设置 → 网络 → 私人 DNS

三、检查 hosts 文件

如果你(或某个软件)曾经修改过 hosts 文件,其中的条目会优先于 DNS 生效,而且不受缓存清理影响。

  • Windows: C:\Windows\System32\drivers\etc\hosts
  • macOS / Linux: /etc/hosts

检查是否有与订阅域名相关的条目。有些"加速工具"会在这里写入内容。

四、临时用另一个网络更新

如果只是想尽快拿到最新的节点列表:

用手机热点更新一次订阅。 不同网络的 DNS 环境不同,往往换一个就能成功。更新完成后切回原网络,节点列表已经拿到了,可以正常使用。

这不解决根本问题,但能快速恢复可用状态。

客户端的 DNS 策略

大多数客户端有自己的 DNS 配置,独立于系统设置:

远程解析 —— 域名交给节点那一端解析。解析结果与访问路径一致,不容易出现"解析到 A 但从 B 访问"的问题。

本地解析 —— 在本机解析后把 IP 交给节点。国内站点可以就近解析,但境外域名可能拿到不合适的结果。

分流解析 —— 按规则区分:国内域名本地解析、境外域名远程解析。这是推荐的默认策略。

更多说明见 DNS 问题排查

注意事项

  • 订阅地址包含账号凭据。在浏览器里测试后,注意浏览器历史记录中会留下这条地址。
  • 更换 DNS 会影响所有网络访问,不只是订阅更新,调整前了解副作用。
  • 修改 hosts 文件需要管理员权限,操作前先备份。

常见问题

为什么节点能用但订阅取不到?

节点通常用 IP 直连,订阅地址是域名需要解析。两者走的解析路径不同。

换 DNS 会有什么风险?

主要是国内 CDN 就近解析失效导致部分站点变慢。安全性方面,选择知名的公共 DNS 服务通常没有额外风险。

为什么昨天还好好的?

网络环境的 DNS 配置可能变化(运营商调整、路由器重启后拿到不同配置),或者本地缓存了一个错误结果。

手机能更新电脑不行?

两者的 DNS 配置不同。对比一下,或者直接在电脑上换个 DNS 试试。

订阅更新成功但节点还是连不上?

那是另一个问题,见节点全部 Timeout 怎么处理