帮助中心 >
  关于网络安全 >
  DNS解析不生效怎么办?详细排查方法

DNS解析不生效怎么办?详细排查方法

时间 : 2026-02-28 15:36:02
编辑 : DNS.COM

  在网站搭建、服务器迁移或更换域名服务商时,很多人都会遇到一个问题:DNS解析不生效。明明已经添加了A记录、CNAME记录或MX记录,但网站就是打不开,域名仍然指向旧服务器,甚至提示“无法访问此网站”。如果你也遇到了类似情况,不要着急。

  什么是DNS解析不生效?

  DNS(域名系统)的作用,是把域名转换为IP地址。当你在浏览器输入网址时,系统会通过DNS服务器查询对应IP,然后访问服务器。

  所谓“DNS解析不生效”,通常指:修改了解析记录,但访问仍然指向旧IP;添加新域名记录,但访问提示找不到服务器;邮箱无法收发(MX记录未生效);部分地区可以访问,部分地区无法访问;

  这种情况,本质上是DNS查询结果与预期不一致。

  DNS解析不生效的常见原因

  在正式排查之前,先了解常见原因,比如解析尚未完全传播(缓存未刷新),本地DNS缓存未清理,域名未正确指向当前DNS服务商,解析记录填写错误,TTL设置过高,域名状态异常(未实名、被暂停),服务器未监听对应端口,CDN缓存未刷新,递归DNS服务器缓存问题。接下来我们按照从简单到深入的顺序进行排查。

  第一步:确认解析是否真的没生效

  1. 使用 nslookup 检查解析结果

  Windows 或 macOS 终端执行:

nslookup yourdomain.com

  示例输出:

Server:  8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
Name:    yourdomain.com
Address: 1.2.3.4

  重点看:返回的 IP 是否是你设置的目标 IP?查询的 DNS 服务器是否正确?如果返回的是旧IP,说明缓存未刷新或记录未生效。

  2.. 使用 dig 命令(更专业)

  Linux 或 macOS 可使用:

dig yourdomain.com

  查看关键字段:

ANSWER SECTION:
yourdomain.com.  600  IN  A  1.2.3.4

  这里的 600 表示 TTL(秒)。

  第二步:检查是否为本地缓存问题

  很多时候,解析其实已经生效,只是你电脑缓存没刷新。

  Windows 清除DNS缓存

ipconfig /flushdns

  macOS 清除DNS缓存

sudo killall -HUP mDNSResponder

  清理后重新访问测试。

  第三步:检查域名是否指向正确DNS服务器

  有时候你在某个DNS平台添加记录,但域名却没使用这个DNS服务。

  查询域名使用的DNS服务器:

nslookup -type=ns yourdomain.com

  示例输出:

yourdomain.com  nameserver = ns1.exampledns.com
yourdomain.com  nameserver = ns2.exampledns.com

  确认:这些NS服务器是否属于你当前解析服务商?是否刚刚修改过DNS服务器?如果更换过DNS服务器,可能需要等待24-48小时传播。

  第四步:检查解析记录是否填写正确

  常见错误包括:A记录写错IP,CNAME指向错误,主机记录填写错误,多条冲突记录。

  注意:同一个主机记录不能同时存在A和CNAME,CNAME不能直接指向IP。

  第五步:检查TTL是否过高

  TTL表示缓存时间。如果原TTL设置为:86400,表示缓存24小时。修改后可能需要一天才会刷新。

  建议:在修改解析前,将TTL设置为300秒,等待旧TTL过期后再修改记录。

  第六步:服务器是否真正监听

  有时候DNS已经生效,但服务器没开启服务。

  检查服务器端口:

  Linux执行:

netstat -tulnp | grep 80

  或:

ss -tulnp | grep 80

  查看是否有:

tcp  LISTEN  0  128  0.0.0.0:80

  如果没有监听80端口,说明Web服务没启动。

  第七步:检查防火墙是否放行

  服务器防火墙未放行端口也会导致无法访问。

  查看防火墙状态(Linux):

firewall-cmd --list-all

  放行80端口:

firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload

  第八步:检查是否启用了CDN

  如果域名接入了CDN,解析实际上指向CDN节点,而不是服务器IP。此时需要登录CDN后台,检查回源IP是否正确,刷新CDN缓存,否则会出现“DNS已生效但网站打不开”的情况。

  第九步:跨地区测试解析

  不同地区DNS缓存刷新时间不同。

  可以使用公共DNS测试:

nslookup yourdomain.com 8.8.8.8
nslookup yourdomain.com 1.1.1.1

  如果不同DNS返回不同IP,说明传播还未完成。

  第十步:域名状态是否异常

  检查域名是否过期?未实名认证?被暂停解析?被锁定?

  可以使用 whois 查询:

whois yourdomain.com

  查看状态是否为:

Status: ok

  如果出现:

clientHold
serverHold

  说明域名被暂停解析。

  总结:DNS解析不生效并不可怕,关键在于掌握排查思路。只要按照“本地缓存 → DNS服务器 → 解析记录 → 服务器状态”的逻辑一步步检查,问题一定能定位。对于站长来说,理解DNS传播机制、TTL原理和服务器监听状态,比单纯等待更重要。如果你经常做服务器迁移、香港云服务器部署或跨境业务,建议在修改前提前降低TTL,并准备好完整的测试方案,这样可以避免网站长时间无法访问的风险。

DNS Becky
DNS Amy
DNS Luna
DNS NOC
标题
电子邮件地址
类型
信息
验证码
提交