换了 DNS 就好了,我以为搞定了

某站解析异常,我把本机 DNS 换成一个公共解析,页面立刻能打开。

我跟客户说「解决了」。第二天他那边还是打不开,因为他没换。那次客户很不高兴。自己能开,只是主观证据,客观证据要多点。

换 DNS 只是换了一条路

解析请求从哪台递归服务器发出,决定了你拿到什么答案。

换一个 DNS,相当于让另一台服务器替你问一次。

它可能绕开了被干扰的链路,也可能只是命中了不同的缓存,缓存也可能给错答案。DoH 能绕过一部分,但不是万能,服务端不一定支持。

DNS 污染检测:异常解析地址与地区分布

DNS 污染检测:异常解析地址与地区分布

为什么不能算解决

用户不会都去改 DNS,尤其是手机、公司网络、App 内置解析,还有浏览器缓存。用户侧没法要求改 DNS,只能从服务端解决。

服务器上的应用、容器、定时任务,各有一套 DNS 配置,有些应用写死了 DNS,改系统配置也没用,容器还有自己的 resolv.conf,迁移后容易忘。

其他地区、其他运营商的链路,可能仍然有问题,运营商递归差异很大,同城不同家都可能不一样。权威侧被改,换 DNS 也白搭,先查记录本身。

怎么验证

用宝塔拨测的 DNS 污染检测从多地区多运营商节点复查,看异常是否还在,节点要覆盖用户。

和权威记录对照,确认答案本身正确。

再实际访问一次,看页面、证书、内容是否正常。污染和劫持要分开,处理方向不同。

真正解决要做什么

先确认污染发生在哪一层,再决定动解析、动链路还是动域名。临时绕过可以接受,但要告知风险,先保住业务,再谈根治,这是现实顺序。

清理缓存、等待 TTL、切换解析商,动作不一样。

只改自己设备的 DNS,最多算临时绕过,不是修复,权限和流程也要走。

复测与记录

隔时间再测两三次,确认异常没有再出现,复测覆盖多个运营商,别只测一家。

记录哪些地区曾经异常、什么时候恢复、做了什么动作,结果写成表格:地区、运营商、结果、时间,复盘才有依据,也能证明修复有效。

能复现、能验证,才叫解决;能打开,只是其中一条路通了。别把「能打开」当终点,它只是起点,真正的终点是稳定,所有用户都能用。这个标准要立住,否则会反复。工具给的是分布,不是单点感觉,用分布说话,比争论有用。下次遇到类似问题照着流程走,不用重新想,效率就上来了,这才是积累。慢就是快,确实如此。