网站的维护和部署过程中,有一个经典问题反复困扰着运维人员和站长:服务器IP直接访问一切正常,页面秒开,但换成域名访问就超时或者报错。这种现象说明服务器本身、网络链路大概率没问题,问题基本锁定在域名到IP的映射环节,也就是DNS解析这一层。当然也不全是DNS的锅,域名状态、备案、安全组策略都可能是幕后推手。下面按照排查优先级,把常见原因和对应的解决办法一次讲透。

一、先确认问题:用命令区分是解析问题还是服务问题
排查的第一步不是急着改配置,而是先搞清楚“域名访问不了”到底卡在哪一步。浏览器访问一个域名,整个过程可以拆成两段:第一段是DNS解析,把域名翻译成IP;第二段是根据IP建立连接、请求页面。IP能访问说明第二段没问题,重点检查第一段。
在Windows上打开cmd,在Linux或Mac上打开终端,执行以下命令:
nslookup www.ipipp.com ping www.ipipp.com
重点观察nslookup的返回结果。如果提示Non-existent domain或者查不到A记录,说明域名根本没有解析记录,或者解析还没生效,问题出在DNS配置环节。如果解析出来的IP和实际服务器IP不一致,那就是解析记录指向错了,可能是配置时手滑填错,也可能是DNS缓存了旧记录。如果解析出的IP正确但ping不通,就要考虑ICMP被防火墙禁用或者服务器安全策略的问题,这不影响TCP访问,可以继续用telnet或curl测试端口。
curl -v http://www.ipipp.com telnet 服务器IP 80
curl的-v参数会输出详细过程,能看到DNS解析、TCP连接、HTTP请求每一步的状态,是定位这类问题的利器。
二、DNS解析环节的常见故障点
1. 域名没有添加解析记录
最常见也最容易被忽略的原因。域名注册和域名解析是两件事,刚注册的域名如果没在DNS服务商控制台添加A记录或CNAME记录,域名自然无法指向任何服务器。登录DNS控制台检查是否至少存在一条指向服务器IP的A记录,主机记录填@表示主域名,填www表示www子域名,两者建议都配上。
2. DNS服务器地址填错或未生效
域名需要指定DNS服务器(NS记录)才能被解析,如果NS地址填写有误,或者修改NS后还没全球生效(通常需要24到48小时),解析就会失败。可以在域名注册商处确认DNS服务器配置,也可以直接用下面的命令查询:
nslookup -type=ns ipipp.com
3. 本地DNS缓存作怪
有时候解析记录改了,服务器端一切正常,但访问者的电脑还缓存着旧的错误记录。TTL值决定了缓存存活时间,缓存没过期之前拿到的永远是旧结果。解决办法是刷新本地DNS缓存,Windows执行ipconfig /flushdns,Mac执行sudo dscacheutil -flushcache,浏览器自身也有DNS缓存,必要时关闭重开。为了加快后续变更生效,建议把解析记录的TTL设置为600秒左右,等稳定后再调大。
4. 换个公共DNS再试
如果本地运营商DNS抽风或者劫持,也可能出现别人能访问你访问不了的情况。把电脑的DNS改成223.5.5.5(阿里)或114.114.114.114再测试,如果换DNS后恢复正常,说明是原DNS节点的问题,可以等待其缓存过期,或联系服务商处理。
三、域名状态与政策层面的原因
1. 域名过期或被停止解析
域名是有有效期的,过期后注册商会暂停解析服务,表现就是域名打不开而IP正常。用whois查询域名的到期时间和状态字段,如果显示clientHold或serverHold,说明域名被注册商或注册局暂停,可能是欠费,也可能是未完成实名认证。国内注册的域名必须完成实名审核,未实名的域名会被hold状态处理,这也是新购域名解析不生效的高频原因。
2. 网站备案问题
如果服务器在国内大陆,域名必须完成ICP备案才能提供Web服务。未备案或备案被注销的域名,接入商会阻断80和443端口的HTTP访问,但直接用IP加端口的某些访问方式可能不受影响,这就造成“IP能访问、域名不行”的假象。检查接入商的备案状态,确认域名是否在当前服务器所属接入商名下完成备案,换服务器时记得同步做备案接入变更。
3. Web服务器的域名绑定
还有一种情况容易被忽略:Nginx、Apache等Web服务器配置了基于域名的虚拟主机。如果配置文件里的server_name没有包含你访问的域名,请求可能被默认站点拒绝或者落到别的站点上。以Nginx为例,检查配置:
server {
listen 80;
server_name www.ipipp.com ipipp.com;
location / {
root /var/www/html;
index index.html;
}
}修改后记得执行nginx -t检查语法,再执行nginx -s reload重载配置。
四、实用排查技巧与注意事项
排查过程中有几个技巧能大幅提升效率。第一招是用hosts文件强制绑定域名和IP做测试,绕过DNS环节。Windows的hosts文件位于C:\Windows\System32\drivers\etc\hosts,Linux和Mac位于/etc/hosts,添加一行“服务器IP 域名”后保存,如果这样能访问,进一步证实问题在DNS解析,而不是服务器。测试完记得删除这行,避免影响后续判断。
第二招是使用在线DNS检测工具,输入域名后可以看到全国各地多个节点的解析结果,快速判断是局部DNS问题还是全局解析问题。如果各地返回的IP不一致且部分地区超时,很可能是解析刚修改、全球还在同步中,耐心等待TTL过期即可。
注意事项方面:修改DNS记录后不要反复改动,每次修改都重置生效周期;迁移服务器时要先降低TTL再改IP,减少切换期间的不可访问时间;HTTPS站点更换IP后,证书本身不受影响,但要确认新服务器上部署了证书和私钥;多线服务器还要检查各运营商线路的解析是否都指向了正确的地址。
总结一下排查思路:先用nslookup确认解析结果,再看域名状态和备案,然后检查服务器端绑定与防火墙,最后借助hosts和公共DNS交叉验证。按照这个顺序走下来,绝大多数“IP能访问、域名不行”的问题都能在十分钟内定位。DNS是互联网的地址簿,理解了它的工作机制,这类故障就再也难不倒你了。