WgetCloud DNS 问题排查与解析异常处理

DNS 问题的表现很有迷惑性:节点显示正常、延迟数字漂亮、但网页就是打不开,或者订阅怎么也更新不了。这一页说明如何识别和处理这类问题。

DNS 在这个链路里做什么

访问一个网站时,浏览器需要先把域名转换成 IP 地址,然后才能建立连接。这个转换过程就是 DNS 解析。

关键在于:解析和连接是两个独立的环节。节点可用只代表连接这一环没问题,如果解析环节返回了错误的地址,或者根本没返回结果,页面依然打不开。

怎么判断是不是 DNS 问题

  • 特征一:能连节点,打不开网页客户端显示已连接、延迟正常,但浏览器提示无法访问或长时间加载。
  • 特征二:部分网站正常,部分异常如果所有网站都打不开,更可能是连接层的问题;只有部分域名异常,DNS 的嫌疑较大。
  • 特征三:直接用 IP 能访问如果通过 IP 地址可以访问而域名不行,基本可以确定是解析问题。
  • 特征四:订阅更新失败但节点能用订阅地址的域名解析失败,而已导入的节点使用 IP 直连,就会出现这种组合。
  • 特征五:换网络后恢复不同网络使用不同的 DNS 服务器,换个环境就好,说明原网络的解析有问题。

快速验证

在命令行里执行一次解析,看返回结果是否合理:

bash
nslookup example.com

macOS 和 Linux 上也可以用:

bash
dig example.com +short

如果返回的地址明显不对(例如返回了一个本地地址或已知的无效地址),或者查询直接超时,说明解析环节确实有问题。

处理方式一:清除本地 DNS 缓存

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

Windows: 以管理员身份打开命令提示符,执行

bash
ipconfig /flushdns

macOS: 打开终端,执行

bash
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

手机: 开启再关闭一次飞行模式,或者重启设备。

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

处理方式二:更换系统 DNS

把系统 DNS 改为公共解析服务,可以绕开本地网络的解析问题。

更换 DNS 的副作用

更换公共 DNS 后,部分依赖就近解析的服务(例如国内的 CDN 加速内容)可能会被解析到较远的节点,导致这些站点变慢。

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

修改位置:

  • Windows: 设置 → 网络和 Internet → 当前网络 → 编辑 DNS 服务器分配
  • macOS: 系统设置 → 网络 → 当前网络 → 详细信息 → DNS
  • Android: 设置 → 网络 → 私人 DNS(不同系统路径略有差异)
  • iOS: 设置 → 无线局域网 → 当前网络 → 配置 DNS

处理方式三:调整客户端的 DNS 设置

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

远程解析(Remote DNS)。 域名交给节点那一端去解析。优点是解析结果与访问路径一致,不容易出现"解析到 A 但从 B 访问"的情况。

本地解析(Local DNS)。 在本机解析后再把 IP 交给节点。优点是国内站点可以就近解析,缺点是境外域名可能拿到不合适的结果。

分流解析。 按规则区分:国内域名本地解析,境外域名远程解析。这是大多数配置的默认策略,也是推荐做法。

如果你遇到"境外网站打不开但节点正常"的情况,可以尝试把相关域名改为远程解析。

处理方式四:检查 hosts 文件

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

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

检查是否有与当前访问不上的域名相关的条目。

订阅更新失败与 DNS

订阅地址是一个域名。如果这个域名解析失败,客户端就取不到节点列表,表现为更新失败。

判断方法:在浏览器里直接打开订阅地址

  • 浏览器能打开(显示一串编码内容或提示下载)→ 解析正常,问题在客户端设置
  • 浏览器也打不开 → 解析或网络层有问题,按本页方法处理

完整流程见订阅更新失败的排查步骤

相关内容