做站这些年,我最怕的不是服务器宕机,而是网站好端端突然打不开,你查服务器是活的,查域名解析也正常,可国内就是进不去,换个海外节点一访问又通。碰到这种怪事,十有八九是域名被墙了,要么就是DNS解析被污染了。今天就用聊天的口气,把怎么判断、怎么处理讲明白,顺便说说怎么避开那些坑人的收费服务,让你一分冤枉钱都不花。

一、先分清:域名被墙和服务器IP被墙不是一回事
很多人一慌就乱查,其实第一步要分清对象。域名被墙,意思是你的域名在DNS层面被特殊照顾,常见的就是解析被污染,返回一个乱七八糟的假IP,或者解析直接失败,再或者访问时连接被重置。服务器IP被墙则是机房IP被拉黑,这种更狠,你换什么域名都白搭,只要流量落在这个IP上,国内就进不去。怎么区分呢?办法很简单,直接用IP访问试试,在浏览器地址栏里敲上你服务器的IP,看能不能打开;或者临时改一下本地hosts文件,把域名强制指到服务器IP再访问。如果这样能打开,说明域名和IP本身都没问题,是域名解析环节被动了手脚;如果还是打不开,那八成是服务器IP被墙了。这一步判准了,后面处理才不会跑偏。
二、域名被墙和DNS污染,常见表现长什么样
先说最常见的几种表现,你对号入座。第一种,域名解析看着完全正常,nslookup能查到A记录,返回的IP也对得上,但浏览器就是打不开,刷新好几次偶尔能出来一次。第二种,ping域名一直超时或者丢包严重,但ping服务器IP却稳得很,一点事没有。第三种,访问时不是单纯地慢,而是直接提示连接被重置,或者被跳到一个莫名其妙的页面。第四种,手机流量能打开,家里宽带打不开,或者反过来,不同网络差别很大。第五种,域名在微信、QQ这类软件里点开,提示无法访问或者不安全。前三种偏域名被墙和DNS污染,后两种要结合网络环境具体看。还有个小细节要记住,如果只是个别地区打不开,多数不是被墙,而是解析缓存或者机房线路的问题,别一上来就给自己判死刑。
三、本机自测第一步:ping和解析查询看清楚
测试的第一步,先看解析到底正不正常。打开命令行,Windows系统按Win加R,输入cmd回车,Linux和Mac打开终端就行。先ping一下你的域名,看看返回的IP是不是你服务器的真实IP,如果返回一个你压根不认识的IP,那解析八成被污染了。再nslookup一下域名,正常情况会返回一个或多个A记录,都是你熟悉的IP;如果返回一堆奇怪的IP,或者直接解析超时,基本可以断定解析链路出了问题。这里提醒一句,本机是有DNS缓存的,测之前先清一下,Windows执行ipconfig /flushdns,清完再测结果才准。另外,如果你在hosts文件里手动指定过IP,先把这个临时删掉再测,免得旧配置干扰判断。
四、本机自测第二步:换个网络再对比
解析没问题,不代表网络真通。第二步就是把网络环境换一换。假如你现在连的是家里宽带,就把WiFi关掉,改用手机流量访问你的域名。手机流量和宽带走的运营商不一样,出口线路也不同,很多时候差距就在这。要是流量能打开、宽带打不开,说明域名没被墙死,多半是宽带出口的解析被污染了,或者被运营商做了手脚;要是手机流量也打不开,那问题就更像出在域名本身。想再细致一点,就找移动、联通、电信的手机各试一次,不同运营商的DNS服务器不一样,污染程度可能完全不同。这一步的目的,就是判断问题是普遍的还是局部的,这个结论直接决定你后面怎么处理。
五、海外节点测试:被墙与否的实锤
想确定是不是真被墙了,最直接的办法是找个海外节点访问一下。海外能访问、国内打不开,基本就能断定域名被墙或者服务器IP被墙,因为墙只拦国内方向,不拦国外。海外测试怎么搞?最简单的办法是找在线监测网站,很多平台提供全球多节点检测,你输入域名,它从美国、日本、新加坡这些节点帮你访问,连通结果一眼就能看明白。如果你自己有海外服务器,直接在服务器上ping一下域名、curl一下,看通不通,这是最实在的。另外有些免费的全球ping服务也能看各地节点的延迟和丢包。这里说句实在话,免费的足够用,别急着买什么高级检测套餐,检测这一步根本不用花钱,花钱的事我放到最后专门讲。
六、判断DNS污染的细节:假IP和间歇性
DNS污染和域名被墙经常混在一起说,但判断上有几个细节可以留意。第一,污染最典型的特征是假IP,你ping域名,返回的地址不是你服务器的,而是某个固定的陌生IP,用工具查一下这个IP的归属,如果明显不是你的机房,那污染基本实锤。第二,污染往往是间歇性的,第一次解析被替换,第二次可能就恢复正常,所以你多解析几次,看看结果稳不稳定,忽好忽坏很可疑。第三,被墙的域名通常是国内统一处理,表现为连接被重置或者干脆超时,而污染更多是解析结果被偷换,页面有时还能刷出来。第四,你可以让海外服务器用公共DNS解析这个域名,比如8.8.8.8,海外解析出来是对的IP,国内解析出来是错的,那就是国内的解析链路出了问题。污染和被墙的处理方向完全不同,这一步判断清楚特别关键。
七、怎么处理:换DNS、换域名、备案回国、换线路
处理的办法,按成本从低到高排着说。第一,如果是单纯的DNS污染,先试试换公共DNS,把电脑或者路由器的DNS改成223.5.5.5这类国内公共DNS,很多时候污染直接就绕过去了,这是零成本的办法,一定先试。第二,如果换DNS绕不过去,说明域名已经被重点照顾,那就只能换域名,新域名重新解析重新接入,旧域名能做301跳转就做,做不了就抓紧把用户和内容迁过去,别恋战。第三,如果你的站本来就是给国内用户看的,内容也正规,那就直接备案然后接入国内服务器,这是一劳永逸的路子,国内访问又快又稳,再也不用跟墙斗智斗勇。第四,如果确认是服务器IP被墙,换域名没有用,必须换线路,也就是换机房或者换IP,海外机房优先选对国内线路优化好的,比如带CN2线路的,体验会改善不少。具体怎么选,核心看你的用户在国内还是在国外,别本末倒置。
八、别乱花钱:这些年常见的智商税
这篇文章最想说的其实是最后这段。网站一打不开,人一急就容易乱花钱,我见过太多人在这上面被坑。有人花几百块买加速服务,结果域名根本没被墙,就是本地DNS缓存闹的;有人花大价钱买检测报告,其实免费工具十分钟就能测明白;还有人被推销换什么顶级防墙域名,换完没两天照样被处理。记住几条原则:先用免费手段把问题测清楚,没确诊之前一分钱都别掏;域名真被墙了,与其折腾各种偏方,不如直接换域名或者备案回国,这是最省心也最省钱的路;凡是打包票说能永久防墙的,基本都是骗子,被墙这件事没有一劳永逸的解药,只有成本更低的选择。钱要花在刀刃上,该花的备案费用、线路费用别省,不该花的心急钱一分都别掏。
总结一下。网站打不开,先ping看看IP对不对,再换个网络对比一下,再用海外节点确认一遍,分清是域名的问题还是服务器IP的问题,是DNS污染还是被墙。处理上,能用换DNS解决的就别急着换域名,能备案回国安稳做站的就别整天提心吊胆,IP被墙了就老实换线路。整个过程记住四个字,先测后花。希望这篇闲聊能帮上你的忙,少走弯路,也少花冤枉钱。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!