DNS 污染的本质,是有人在解析链路上给了你一个假答案。

四个典型表现

返回无关 IP:解析出来的地址跟你的服务器完全没关系,可能是某个广告页面、某个黑洞地址,甚至是别人的机器。

返回保留地址:0.0.0.0、127.0.0.1、10.x.x.x 这类地址本来不该出现在公网解析结果里,出现就是被干预了。

部分线路解析失败:某些地区直接返回 NXDOMAIN 或者超时,换个地区又正常。

换 DNS 结果就变:用运营商 DNS 查是错的,换成公共 DNS 查是对的。这一条几乎是污染的判定标准。

为什么会被污染

常见于几种场景:运营商为了拦截某些域名做的劫持、跨境访问时的中间干预、域名本身被列入某些黑名单。

还有一种是自己配置引起的「假污染」:智能解析线路漏配,某些地区没有匹配的记录,就返回了默认值或者空结果。这种不是被攻击,是配置问题。

怎么确认

第一步,多节点查一遍,看错误结果集中在哪些地区、哪些运营商。

第二步,指定不同的 DNS 服务器对比。运营商 DNS 错、公共 DNS 对,基本就实锤了。

第三步,直接查权威服务器。如果权威返回的是正确 IP,那问题一定在递归链路上。

能做什么

如果是运营商劫持,个人层面很难彻底解决,可以考虑上 HTTPS(能防内容篡改,但防不了解析劫持)、换域名、或者向运营商投诉。

如果是跨境链路的干预,通常需要换线路或者用国内节点中转。

如果是自己配置的问题,把智能解析的线路补全就行。

别急着下结论

看到错误 IP 先排除缓存。刚改完解析,旧记录还在各地递归里躺着,这时候查出来的「错误结果」可能只是没到期。

等 TTL 过了再测,才能分清是污染还是延迟。