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

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

在网站搭建、服务器迁移或更换域名服务商时,很多人都会遇到一个问题: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,并准备好完整的测试方案,这样可以避免网站长时间无法访问的风险。

相关推荐

“黄码”六问六答来了→
英国最大赌博365网站

“黄码”六问六答来了→

⌛ 07-31 👁️ 3861
诛仙天琊价格大揭秘,买了吗?
2022年bet体育365官网合法吗

诛仙天琊价格大揭秘,买了吗?

⌛ 10-19 👁️ 8907
化石是如何形成的?
365bet娱乐场手机版

化石是如何形成的?

⌛ 01-03 👁️ 1760