说个我自己当年的糗事。第一次给网站换服务器,改完A记录那叫一个兴奋,端着手机站窗口边刷边等,跟等高考成绩似的。结果五分钟、十分钟、半小时……手机死活还是旧页面,我一度以为是自己改错了,又跑去控制台删了重加,来回折腾好几趟。后来才明白,解析生效这事儿,急不来,它有它自己的节奏。

为啥改完解析不能立刻生效
因为全世界帮你查域名的那些DNS服务器,都是有缓存的。你改了记录,是改了源头,但人家缓存里还存着旧结果呢,缓存没过期之前,就一直给你返旧的。所以生效快慢,一半看你DNS服务商更新快不快,一半看各地缓存啥时候过期。同一个域名,你同事那边可能已经通了,你这边还卡在旧IP上,真不是玄学。
不同类型的记录,脾气还不一样
A记录、CNAME这种,一般几分钟到几十分钟就生效了,属于急性子;但你要是改了NS记录,或者刚把域名转到新服务商,那不好意思,全世界的DNS要同步过来,最长可能得等24到48小时,急也没用。还有做邮箱的MX记录,改之前记得留几天缓冲,不然邮件容易丢,这个细节好多人不知道。
想让它快点生效?提前做两件事
第一,改解析之前,先把TTL调小,比如调到300秒,让旧记录赶紧过期,然后再去改解析,新记录就能快点上位。第二,改的时候别手贱反复保存,你每改一次,各地缓存的计时器就重新开始,等于自己给自己添堵。换服务器这种大事儿,新旧IP先并行跑两天,等解析全切过去了再下旧机器,稳得很。
判断到底生效没,用公共DNS说话
别在自己电脑上瞎ping,你那边的DNS缓存可能还在坑你。直接用不同公共DNS去查,对比结果,一下就明白了:
nslookup 你的域名 223.5.5.5(阿里的),再来一个nslookup 你的域名 119.29.29.29(腾讯的)。要是两边查出来的IP不一样,那说明就是缓存没到期,等着就行;要是所有公共DNS都查不到记录,那才是真出问题了,回控制台核对是不是没保存上,或者填错地方了。
记录没问题网站还打不开?那就不是解析的锅
确认解析都正常了,网站还打不开,这时候思路要换:用IP直接访问一下服务器试试,通了就说明是解析链路还有缓存,不通那基本就是服务器本身的问题——安全组、防火墙、Web服务,挨个查。对了,还有个土办法,解析还没完全生效想提前测试的话,改本地hosts文件临时指过去,不影响线上,测试完删掉就行,我们以前都这么干。要是连IP直接访问都不通,那基本可以确定这事跟域名半毛钱关系都没有,踏踏实实回头查服务器吧。
还有一种情况:压根儿没改对地方
说个更冤的。有的人在阿里买的域名,DNS却托管在腾讯那边,或者反过来,结果他在买域名那家的控制台里改了半天解析,改的却是人家默认的DNS服务器,真正的解析服务商那边压根没动。所以改之前先搞清楚一件事:你的域名DNS服务器到底是哪家在管。不确定的话,用nslookup -type=NS 你的域名查一下,看到底是哪家的NS记录,再去那家的控制台里改,别白忙活一场。
还有企业内部网络,公司自己搭了DNS服务器或者路由器上写了固定的DNS,那就算公网解析早生效了,你公司电脑还是解析到旧地址,这时候换公共DNS一查就露馅了——不是解析没生效,是你的网络环境在捣乱。手机切到流量再试一次也行,运营商网络的DNS缓存一般比公司内网干净得多,一对比你心里就有数了。
最后啰嗦两句
解析问题的九成焦虑,都来自于不懂缓存。记住两句话:改之前先调小TTL,改完之后拿公共DNS验证记录本身是不是对的。只要记录在源头是对的,剩下的就交给时间,别反复改,更别怀疑人生。你越淡定,它反而越快,真的。行了,去喝口水歇会儿吧,它该生效的时候自然会生效,急也急不来的。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!