你的网站打不开?别急,先看看是不是域名解析卡住了
刚改完DNS,朋友说打不开你网站,你刷新十次——还是404。别删记录、别重配,90%的情况只是“还没传到他那儿”。DNS不是秒发微信,它像寄平信,得等邮局一程程转。
第一步:先确认是不是真的解析问题?
别急着进后台改设置。先打开终端(Mac/Linux)或命令提示符(Windows),敲这行:ping 你的域名.com
如果返回的IP和你服务器地址对不上,那确实是解析没到位。
如果压根ping不通,再试这句:nslookup 你的域名.com
它会直接告诉你,当前查到的IP是谁给的——是你本地网络缓存的旧结果,还是运营商DNS还没更新。
真实案例:一位做独立博客的朋友,自己电脑能打开,但同事说页面空白。一查 nslookup,发现他本地DNS还记着三天前的老IP。执行 ipconfig /flushdns 清掉缓存,立刻就通了。
全球DNS生效到底要等多久?
不用硬扛48小时。实际中,多数人在改完DNS后,10分钟到3小时内,北京、上海、深圳的用户基本都能看到新地址。
关键看TTL值——也就是你这条记录允许被缓存多久。比如你之前设的是“2天”,那全世界的DNS服务器就会按这个时间守着旧IP不放;但如果提前把TTL调成5分钟(300秒),改完记录后,大家最多等5分钟就能刷出新地址。
实操建议:下次要换服务器或迁站,提前1–2天就把所有记录的TTL改成300秒。等生效后,再把TTL调回1小时(3600秒)——既够快,又不会让DNS服务器太累。
检查这5个最常见的配置错误
手抖填错一个字符,解析就原地躺平。一个个过:
- 类型选错了:想让
www.域名.com指向服务器IP?用A记录。想让它指向myapp.vercel.app?用CNAME。千万别选成TXT(那是放验证信息的)或者MX(那是收邮件的)。 - 主机名写串了:填
www就是解析www.域名.com;填@或留空(看平台),才是解析域名.com这个根域名。填成www.域名.com?系统会当成www.域名.com.域名.com,直接报错。 - 记录值抄漏了:A记录后面必须是纯IP,比如
192.0.2.1,多一个空格、少一个小数点都不行。CNAME后面要是另一个域名,结尾记得加英文点号,比如my-site.netlify.app.(这个点不能少,是规范写法)。 - 只配了www,忘了根域名:用户不一定会输
www,很多人直接输域名.com。如果你只给www配了A记录,根域名没配,那他们就只能看到“无法访问此网站”。 - Nameserver根本没换:用了Cloudflare或DNSPod,却还在注册商后台用默认DNS——等于你在新地图上画好了路线,却没告诉别人“请按这张图走”。务必去注册商后台,把Nameserver改成Cloudflare给你的那几行(比如
lara.ns.cloudflare.com这类)。
你的域名状态正常吗?小心这些“隐形杀手”
DNS再完美,域名本身挂了也白搭。登录你买域名的地方(阿里云、腾讯云、NameSilo……),点进域名管理页,重点看两处:
- 域名状态栏:出现
clientHold或serverHold字样,基本就是实名没完成、快到期没续费,或者被投诉暂停了。这种状态下,任何DNS修改都无效。 - 是否过期:哪怕只超期12小时,部分注册商也会立刻停掉解析服务。别猜“应该还能撑两天”,直接看后台写的到期日。
另外,有些平台(比如早期腾讯云)有个隐藏开关叫“DNS解析服务”,默认开启,但可能被误关。找不到就搜“DNS解析”或“解析总开关”,点开确认是“已启用”。
如何利用免费工具快速诊断问题?
别只在自己电脑上测。你连WiFi能打开,不代表上海用户、成都用户、甚至你妈用的移动宽带也能打开。我日常就用这三个不用注册、不收费的工具:
- DNSPod「DNS检测」:输入域名,它会从北京联通、杭州电信、深圳移动等十几条线路同时查,每条线显示当前解析到哪个IP,一眼看出哪边卡住了。
- 站长之家「DNS查询」:支持手动选地区和运营商,比如你想知道“广州移动用户看到的是不是新IP”,直接选对应线路查。
- What’s My DNS?:全球地图式展示,50多个城市节点,绿色✓代表已更新,红色✗代表还在用旧IP。特别适合判断“是不是只剩个别地区没跟上”。
上次帮一个知识付费老师排查,工具显示全国95%节点已是新IP,唯独云南某地运营商还卡在旧地址——问题立马锁定:不是他配置错,是当地DNS缓存太顽固,建议用户清缓存或换DNS即可。
修改了Nameserver后,为什么“失联”更久了?
这是最让人抓狂的环节:你明明切到了Cloudflare,结果半天打不开,还以为切失败了。其实不是失败,是“交接期混乱”。
因为Nameserver本身也是一条DNS记录(NS记录),它也有TTL。而注册商默认给它的TTL往往很长(比如48小时)。这意味着:一部分用户还在找老DNS要答案,另一部分已转向Cloudflare——两边答案不同,自然有人通、有人不通。
怎么减少混乱期?
三步走:
① 切换前3天,在旧DNS后台把所有记录的TTL全改成300秒;
② 在Cloudflare里,把A、CNAME、MX等所有记录,原样复制过去,确保完全一致;
③ 最后一步,才去注册商后台,把Nameserver换成Cloudflare提供的地址。
这样,当NS记录慢慢全球生效时,新老DNS给出的答案已经是一样的了。
今天就能做的具体操作步骤
现在就打开电脑,照着做,15分钟内定位问题:
- 打开终端/命令提示符,执行:
nslookup 你的域名.com 8.8.8.8(强制用谷歌DNS查,绕过本地干扰),记下返回的IP; - 登录你买域名的平台(阿里云/腾讯云/GoDaddy等),确认域名没过期、状态不是
clientHold; - 进入DNS解析管理页,逐条核对:
→ 主机名是@还是www?
→ 类型是A还是CNAME?
→ 记录值有没有多空格、少小数点、漏结尾的英文点?
→ TTL是不是还卡在2天? - 如果用了Cloudflare/DNSPod,回到注册商后台,点开“DNS服务器”或“Nameserver”设置,确认填的是它们提供的地址(不是默认的);
- 打开 DNSPod DNS检测 或 What’s My DNS,输入你的域名,看全球地图上多少地方已变成绿色✓;
- 如果第1步查出的IP和你服务器IP不一致,而第5步显示大部分地区仍是旧IP——说明还没传开,等2小时再测;如果第5步全绿,但你本地还是旧IP,那就清缓存:Windows执行
ipconfig /flushdns,Mac执行sudo dscacheutil -flushcache。
做完这六步,80%的“打不开”都有解。DNS不怕慢,怕盲改。盯住IP、看清状态、借工具看全局——你的网站,稳得很。