在DigitalOcean部署代码并配置DNS后,访问网站出现DNS查找失败错误求助
我来帮你一步步排查这个DNS查找失败的问题——这种情况我在DigitalOcean部署时也碰到过几次,大概率是配置或生效延迟的问题:
排查DNS查找失败的具体步骤
1. 先验证DNS记录是否真的生效
- 打开终端,用命令直接查询域名解析结果:
- 运行
nslookup your-domain.com或者dig your-domain.com,查看返回的IP是否和你DigitalOcean服务器的公网IP一致。如果返回错误或IP不匹配,说明DNS记录要么没生效,要么配置有误。
- 运行
- 注意:DNS记录生效需要10分钟到24小时(由TTL值决定,默认多为1小时),如果刚配置完,不妨先等待一段时间,或者把TTL改成300秒(5分钟)来加速生效。
2. 检查DigitalOcean的DNS配置是否正确
- 登录DigitalOcean控制面板,进入Networking > Domains找到你的域名:
- 确认A记录(或AAAA记录,若用IPv6)的主机名是
@(根域名)或www,指向的服务器公网IP没有填错。 - 如果用了CNAME记录,要确认目标域名本身的DNS是正常可解析的。
- 确认A记录(或AAAA记录,若用IPv6)的主机名是
- 额外检查NS记录:如果之前把域名的DNS服务商改成了非DigitalOcean的,那当前DO上的配置不会生效,得去对应的DNS服务商后台修改。
3. 清除本地DNS缓存
- 本地设备可能缓存了旧的DNS记录,导致无法识别新配置:
- Windows:在命令提示符运行
ipconfig /flushdns - macOS:终端运行
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder - 移动设备:切换飞行模式再恢复,或者直接重启设备。
- Windows:在命令提示符运行
- 也可以用手机流量访问试试(避开本地WiFi的DNS缓存),如果手机能打开,那就是本地DNS的问题。
4. 确认服务器本身可正常访问
- 直接用服务器的公网IP访问网站,如果IP能打开,那确实是DNS层面的问题;如果IP也访问不了,就要检查服务器的防火墙和Web服务:
- 防火墙检查:Ubuntu用
ufw status查看是否开放80(HTTP)和443(HTTPS)端口;CentOS用firewall-cmd --list-all。 - Web服务状态:比如Nginx运行
systemctl status nginx,Apache运行systemctl status apache2,确认服务处于running状态。
- 防火墙检查:Ubuntu用
5. 排查DNS服务器响应问题
- 如果以上步骤都没问题,可以临时切换本地DNS为公共服务器试试,比如8.8.8.8(Google DNS)或1.1.1.1(Cloudflare DNS),再访问网站。如果能打开,说明你的默认DNS服务器存在故障。
内容的提问来源于stack exchange,提问作者ravi mehra
相关产品推荐
相关产品推荐

