1.
检查问题范围:先判断是本地问题还是全球性解析失败
首先在本地电脑和多台不同网络设备上分别进行测试。步骤:1) 在本地命令行执行:Windows: ipconfig /flushdns 然后 nslookup yourdomain.com;Linux/macOS: sudo systemd-resolve --flush-caches 或 sudo killall -HUP mDNSResponder(视系统),再执行 dig yourdomain.com 或 nslookup。2) 使用外部在线检测工具(例如: https://dnschecker.org 或 https://intodns.com)查看不同地区解析结果。如果只有你本地无法解析,可能是本地缓存或ISP问题;如果全球多地都无法解析,说明DNS记录或权威DNS服务器有问题。
2.
使用dig/nslookup定位错误类型
使用dig(Linux/macOS)或nslookup(Windows)明确返回码。常用命令示例:dig +nocmd +noall +answer yourdomain.com @8.8.8.8;或 dig +trace yourdomain.com。关注返回值:NXDOMAIN(域名不存在)、SERVFAIL(权威服务器出错或配置问题)、REFUSED(服务器拒绝)、NOERROR但无记录(缺失A/AAAA/CNAME)。记录下NAME SERVER(NS)和SOA信息,用于下一步核对权威DNS所在地。
3.
核对域名注册商(Registrar)中的NS与Glue记录
登录域名注册商后台,查看当前设置的NS记录是否与您实际使用的权威DNS一致。若使用自建nameserver(例如 ns1.yourdomain.com),则需要设置Glue记录(A记录在注册商处的“主机记录/Glue”项)。排查步骤:1) 在注册商确认NS列表;2) 如NS为第三方DNS,确认提供商的NS没有失效;3) 如使用自有NS,确保Glue的IP正确且可达。
4.
检查DNS区域文件(Zone)与常见记录类型
登录香港服务器(或DNS面板)查看区域文件(BIND位于 /etc/named/ 或 /var/named/)。核对A、AAAA、CNAME、NS、MX、SOA记录是否正确拼写和链路。注意事项:1) CNAME不能与其他记录共存(例如不能同时有A和CNAME);2) SOA的序列号是否更新(修改后需要增加序列号);3) TTL是否设置过大影响调试;4) 若使用子域名作NS,确保相应的A记录存在。
5.
检测权威DNS服务器是否可达(网络连通性与53端口)
在你的本地或其他服务器上使用ping(仅用于检查IP可达)和traceroute/tracert检查路由:traceroute -n ns1.yourdomain.com。使用工具测试53端口是否开放:Linux下使用 dig @ns1.yourdomain.com yourdomain.com 或使用 nc -vz ns_ip 53(或 nmap -sU -p 53 ns_ip 检查UDP)。如果53端口被防火墙或云提供商拦截,需要在服务器上打开TCP/UDP 53并在防火墙/安全组放行。
6.
检查DNS服务进程与日志(以BIND为例)
登录香港服务器,检查DNS进程是否启动:systemctl status named 或 ps aux | grep named。查看日志:/var/log/messages、/var/log/named/*.log 或 journalctl -u named。常见错误包括配置语法错误、zone文件解析错误(查看 named-checkconf 和 named-checkzone yourdomain.com zonefile)。修复配置后重启服务:systemctl restart named 并再次检查状态与日志。
7.
检查服务器防火墙、云安全组与NAT设置
确认服务器内核防火墙(iptables、firewalld、ufw)和云提供商(例如阿里云、腾讯云、AWS、HK主机提供商)的安全组都允许TCP/UDP 53。示例命令:iptables -L -n | grep 53;如果使用ufw:ufw status。必要时添加规则:iptables -I INPUT -p udp --dport 53 -j ACCEPT;iptables -I INPUT -p tcp --dport 53 -j ACCEPT。检查NAT映射与端口转发是否正确(尤其是在使用内网主机或路由器时)。
8.
处理DNS缓存问题(本地、ISP与权威缓存)
修改DNS记录后需要等待TTL过期或手动刷新缓存。操作列表:1) 本地:Windows ipconfig /flushdns;macOS/ Linux 对应命令见上;浏览器也有缓存,尝试无痕/再启浏览器。2) 权威DNS(例如使用BIND)刷新:rndc reload yourdomain.com 或 rndc flush。3) 若使用第三方DNS厂商,检查是否有“清除缓存/刷新区域”的面板按钮。若是ISP缓存问题,可尝试使用公共DNS(8.8.8.8、1.1.1.1)进行验证。
9.
排查DNSSEC与签名不匹配问题
如果启用了DNSSEC,解析常出现SERVFAIL。排查步骤:1) 用 dig +dnssec yourdomain.com 看RRSIG/AD标记;2) 在注册商处核对DS记录是否与DNS服务器上发布的DNSKEY匹配(使用 dnssec-dsfromkey 生成);3) 若不熟悉,可临时在权威区关闭DNSSEC签名,观察解析是否恢复;4) 如需重新签名,按提供商或BIND文档正确生成并上传DS到注册商。
10.
诊断其他常见原因:域名到期、WHOIS锁、转移或被墙等
核对域名是否过期或被锁定:使用 whois yourdomain.com 查看注册状态、到期时间和NS信息。若域名被注册商锁定或正在转移,解析可能中断。针对“被墙”或被ISP拦截情形,尝试用VPN或境外节点测试;若确认为封锁,与托管商或法律顾问沟通。
11.
联系香港主机/域名提供商与报告问题的模版
当你完成上述自检仍未解决时,应联系托管商或域名注册商。提供的信息应包含:域名、发生时间、dig/nslookup完整输出、traceroute到NS的结果、服务端日志片段、你已做的排查步骤。示例报告:域名:yourdomain.com;问题:全球无法解析,dig 返回 SERVFAIL;授权NS:ns1.xxx.com (IP xxx.xxx.xxx.xxx);已尝试:重启named、打开防火墙端口53、检查zone文件无语法错误。这样能加速问题定位。
12.
恢复与预防建议(监控与备份DNS)
恢复后建议:1) 配置多组权威NS(最好跨不同网络和物理位置),以防单点故障;2) 使用第三方备用DNS服务(Cloudflare、AliDNS、DNSPod等)做二级备份或主从;3) 设置监控(如DNS监控告警)及时发现解析异常;4) 定期备份zone文件并记录SOA序列控制变更记录,以便快速回滚。
13.
问:如果dig返回 SERVFAIL,我第一步应该做什么?
答:首先用 dig +trace yourdomain.com 确认问题发生在权威服务器还是上级域名解析链上;同时用 dig @权威NS yourdomain.com 直接查询权威DNS看是否能正确返回记录。如果权威服务器本地也返回错误,查看服务器日志(named日志或系统日志)、检查zone文件语法(named-checkzone)并重启DNS服务;如果权威服务器返回正常,问题可能在注册商Glue/NS或上游缓存。
14.
问:解析正常但访问仍异常,会是什么原因?
答:解析正常说明DNS层工作正常,接下来检查目标IP的网络与服务:1) ping/traceroute到A记录的IP,确认路由与连通性;2) 检查目标服务器上的web服务(nginx/apache)是否启动并监听正确端口;3) 检查服务器防火墙/安全组是否允许80/443;4) 检查SSL证书是否过期或域名和证书不匹配;5) 若有CDN,确认CDN配置未误导流量。
15.
问:如何避免将来再次遇到香港服务器域名解析失败?
答:采取防范措施:1) 使用至少两套独立的权威DNS、分布在不同网络与机房;2) 设置合理TTL(调试期低TTL,稳定期适当提高)并做好变更记录;3) 启用监控与告警(DNS解析监控、端口监控、HTTP监控);4) 保持域名和Glue记录到期提醒,定期检查DNSSEC和证书状态;5) 对关键域名使用第三方托管备份,以便主服务出现故障时自动切换。
来源:域名香港服务器解析遇到解析失败时的排查流程与解决方法