我真服了!昨天为了换个服务器,把域名解析记录改了,然后就开始了噩梦循环。新服务器配置好了、网站代码传上去了、甚至连伪原创工具都开好了准备批量操作,结果访问域名还是跳到旧服务器,或者干脆报错!眼睁睁看着烧着钱的服务器在吃灰,那种感觉就像是准备了满汉全席但客人全走错了饭店大门,血压直接拉满!
抽了三根烟才冷静下来,开始全网搜“怎么查生效了没”。别再傻乎乎地只在自己电脑上刷新了!本地DNS有缓存,你刷到天荒地老看到的都可能是旧IP。我后来就是凌晨四点,用手机流量开飞行模式再关掉,强制刷新DNS,才发现手机能访问了,但电脑还是不行,当场裂开。
最靠谱的其实是命令行,别怕,就几个命令:1. Ping一下。在CMD里输入 ping 你的域名,看看返回的IP是不是你新设置的。不对?那铁定没生效。2. 用nslookup。输入 nslookup 你的域名,它会告诉你查的是哪个DNS服务器,以及返回的IP地址,这个比Ping准。3. 上在线工具!这是关键!本地不准,就用在线的全球DNS查询工具,选不同地区、不同运营商的DNS服务器去查,比如“Google Public DNS”或者“114.114.114.114”,如果全球大部分节点都变成新IP了,那才算真生效了。
这里有个巨坑:TTL值!改解析之前,一定先看旧记录的TTL是多少。比如TTL是3600秒(一小时),那你改了之后,理论上全球DNS缓存最晚一小时才会全部更新。你设置个10分钟的TTL等生效,结果旧记录TTL是一天,那你等24小时都不一定全生效!我就吃过这个亏,以为设置完十分钟就好,结果干等了三个小时,网站半死不活,蜘蛛爬过来全是404,收录掉得跟蹦极一样,权重直接掉没,想死的心都有。
最后给个流程吧,血泪换来的:改解析前,先把旧记录的TTL改成最小(比如300秒)。等至少一个旧TTL周期过去(确保全球缓存都刷成了短TTL),再去改IP地址。改完后,用上面说的在线工具多节点查,别死盯着自己电脑。都生效了,再把TTL改回一个合理的长时间,减少服务器查询压力。唉,说多了都是泪,尤其是用CDN的,解析层级更多,生效更慢,没点耐心真干不了这行。希望你们别像我一样,在网站上线最重要的关头,被卡在DNS解析这一步,那感觉真的太操蛋了。
