你点开网站后台,流量曲线像坐滑梯一样往下掉——不是服务器崩了,也不是内容出问题,而是域名被“卡”在半路了。用户打不开,但你的服务器日志还在刷请求。这种事不常有,一来就让人头皮发紧。

别翻文档、别等客服回复,先做三件事:看手机4G能不能打开、叫个外地朋友试试、查一下DNS解析结果。做完这些,心里就有底了。

域名被污染,第一步该做什么?

污染不是服务器的事,是你的域名在运营商那被“贴了标签”。用户的请求根本没机会到你机器上,就被拦在了半道。

先确认是不是真污染。
用手机切到4G/5G网络访问你的域名。
再找一个不在本地的朋友,让他也试试。
如果只有你家宽带打不开,大概率是本地运营商临时抽风;如果多地都打不开,就是被污染了。

接着分清是哪种污染。
最常见的是两种:DNS劫持和HTTP拦截。
DNS劫持的表现是,nslookup 你的域名 返回一个你完全不认识的IP;
HTTP拦截则是浏览器直接弹出一个奇怪的中间页,比如广告页或提示页。

真实案例:一个做外贸B2B平台的客户,域名连续一周打不开。他换了两次DNS服务商,从阿里云换到腾讯云,问题一点没变。后来我帮他查DNS记录,发现A记录多了一条,指向一个境外赌博站的IP——这是典型的DNS缓存投毒,运营商层面的解析表被改了。

换DNS服务商能解决吗?3个方法实测有效

换DNS服务商,对轻度污染有用。但要是污染严重,运营商连你权威DNS服务器的地址都屏蔽了,换谁都白搭。

方法一:上HTTPDNS。
它不走传统DNS协议,而是用HTTPS调用API查IP。阿里云、腾讯云都提供这个服务,接入只要改几行代码,解析请求加密后运营商没法劫持。

方法二:主域名CNAME到CDN。
比如把 www.example.com 指向 example.cloudflare.net。CDN厂商的域名通常不在污染名单里。但得注意:如果连CDN的域名也被封了,这条路就走不通了。

方法三:换用支持DNS over HTTPS(DoH)的海外DNS。
比如Cloudflare的 1.1.1.1。国内用户访问可能稍慢一点,但能绕过本地DNS污染。

真实案例:一个做游戏加速器的客户,域名被污染后,我让他把系统DNS设为Cloudflare的DoH,并把主域名CNAME到Cloudflare CDN。一周后,污染解除,流量明显回升。

污染持续超过24小时,该考虑换域名吗?

先别急着注册新域名。
换域名=重头来过:SEO要重新积累,老外链全失效,用户信任感也会打折。
除非污染拖过一周,且你试过所有技术手段都没用,才考虑换。

真要换,记住两件事:
第一,老域名不能扔。一定要做301重定向,把所有请求导到新域名;
第二,同步通知合作方、外链站点更新链接。

还有个折中办法:把老域名解析到一台海外VPS,在上面跑个Nginx,只做跳转。用户访问老域名时,自动跳去新站。这样老域名还能继续收一部分流量。

真实案例:一个做跨境电商的客户,域名被污染三天。我帮他注册了新域名,同时把老域名解析到美国VPS,VPS上只部署了一个301跳转。新站上线第一天流量只有原来的三分之一,但一周后恢复了六成。最关键的是,他一直留着老域名没注销,两个月后污染解除,老域名又活过来了。

HTTPS能防污染吗?为什么你的证书没起作用

HTTPS不是万能钥匙。它防不住DNS劫持——用户连你的服务器都连不上,证书再漂亮也没人看。

但它确实能挡住一种污染:HTTP中间页。有些运营商会在HTTP请求里插广告、跳转页,HTTPS加密后,他们看不懂内容,这类操作就失效了。

所以如果你还在用HTTP,今天就切HTTPS。
用Let’s Encrypt或阿里云/腾讯云的免费证书就行。
别忘了加HSTS头,强制浏览器只走HTTPS,避免首次访问被劫持。

真实案例:一个在线教育平台被HTTP拦截污染,页面总弹出博彩广告页。我帮他上了HTTPS并配置HSTS,三天后问题消失,流量开始回升。不过得说清楚:如果是DNS层污染,HTTPS也救不了。

污染恢复后,如何防止二次沦陷?

很多客户以为污染一恢复就安全了,结果两周后又中招。反复被污染,往往是因为漏洞还在。

第一,看看你的域名注册商是谁。
如果是国内注册商,建议转到Namecheap或GoDaddy这类海外平台。国内注册商受监管更严,容易被波及。

第二,立刻开启“域名锁定”。
登录注册商后台,找到“域名锁定”或“转移锁定”选项,把它打开。开启后,没人能偷偷改你的DNS记录。

第三,清理多余的DNS记录。
只留A、CNAME、MX(如果你有邮箱)。TXT、SRV、NS这些非必要记录,能删就删。记录越少,攻击面越小。

第四,考虑上DNSSEC。
它给DNS记录加数字签名,让运营商没法伪造解析结果。虽然配置稍复杂,但金融、电商类站点值得投入。

真实案例:一个做支付系统的客户,两年内被污染两次。我检查发现,他注册商账号密码是123456,也没开域名锁定。黑产通过社工猜中密码,直接改了DNS。我帮他换了强密码、开了锁定、配了DNSSEC。到现在一年,再没出过问题。

污染期间,如何保住流量和SEO排名?

网站打不开,百度蜘蛛抓不到内容,排名下滑是必然的。但你可以减缓损失。

第一,马上进百度搜索资源平台,提交“死链”。
告诉百度:“这个链接暂时失效,但很快会回来。”它会缩短重新抓取周期。

第二,快速启用一个临时域名。
不用多 fancy,买个便宜的 .xyz.top 就行。把核心页面镜像过去,然后在微信公众号、知识星球、邮件列表里发一条简短说明,附上临时地址。

第三,写一篇诚恳的公告。
标题就叫《关于当前域名访问异常的说明》,发到你自己的博客、知乎专栏、公众号。不用遮掩,就说“遇到DNS污染,正在紧急处理”,并给出临时入口。用户看到你在主动应对,反而更愿意等。

真实案例:一个IT教程博主域名被污染时,我在他知识星球和微信群发了公告,附了临时域名。一周下来,临时站带来了约三分之一的日常流量。更重要的是,用户没大量取关,污染解除后,流量两天就回到正常水平。

今天就能执行的3个操作

  1. 打开终端或命令行,输入 nslookup 你的域名,看返回的IP是不是你熟悉的。如果不是,立刻登录域名注册商后台,删掉异常记录。

  2. 登录你的域名注册商账号(比如阿里云万网、腾讯云DNSPod、Namecheap),找到“域名锁定”开关,把它打开。找不到的话,直接搜页面里的“锁定”二字。

  3. 如果还没上HTTPS,今天就用Let’s Encrypt申请免费证书。用 certbot 一键部署,再在Nginx配置里加上这行:
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    保存重启,搞定。