网站打不开排查
更新于 2026年7月23日
适用人群:网站突然无法访问、需要系统性定位故障原因的站长/运维
核心概念
排查的分层思路
网站"打不开"背后可能是DNS层、网络层、服务层、证书层中的任意一层出问题,按由外到内的顺序排查效率最高:
- DNS层:域名有没有解析到正确的IP
- 网络层:端口是否可达,中间有没有被防火墙拦截
- 服务层:Web服务(Nginx等)进程是否存活、配置是否正确
- 证书层:HTTPS证书是否过期、域名是否匹配
只要按这个顺序一步步排除,就能快速把问题范围收敛到具体一层。
操作步骤
步骤 1检查DNS解析
用 dig 域名 A +short 或 /dns 确认域名解析出的IP是否是当前服务器的公网IP,避免解析指向了旧IP或错误IP。
步骤 2检查端口是否可达
用 telnet 服务器IP 80/443 或 nc -zv 服务器IP 80 443(也可用 /tools/port)确认端口能否从外部连通。
步骤 3检查Web服务进程状态
登录服务器执行 systemctl status nginx 确认进程在运行,必要时看 nginx -t 检查配置有无语法错误。
步骤 4检查SSL证书状态
用 /ssl 或 openssl s_client 检查证书是否过期、域名是否与访问域名一致,避免HTTPS单独出故障而HTTP正常掩盖了问题。
步骤 5检查安全组与系统防火墙
确认云服务器控制台的安全组规则和系统内的iptables/firewalld/ufw都放行了对应端口,两处都要检查,任一处拦截都会导致连不上。
步骤 6综合复查
所有层级确认无误后,用 /site-check 做一次整体检测,确认网站已恢复正常访问。
实际示例
# 1. 检查DNS解析
dig example.com A +short
# 2. 检查端口连通性
telnet 203.0.113.10 443
# 或
nc -zv 203.0.113.10 80 443
# 3. 检查Nginx进程与配置
systemctl status nginx
nginx -t
# 4. 检查证书
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -dates
# 5. 检查系统防火墙
ufw status
# 或
firewall-cmd --list-all
常见错误
- ⚠️遇到打不开第一反应就是重启服务器,没有按层排查,问题反复出现
- ⚠️只检查了云服务器的安全组,忘记服务器系统内部还有一层防火墙(iptables/ufw/firewalld)也可能拦截
- ⚠️本地DNS缓存还是旧记录,误以为解析没生效,其实是本机/运营商DNS缓存未过期
- ⚠️只测试了HTTP正常访问,没单独测试HTTPS,遗漏了证书过期导致的单独故障
对应工具
常见问题
网站突然打不开,第一步该查什么?
建议先查DNS解析是否正确指向当前服务器IP,这是最外层也是最容易出问题的一环,排除后再往里层排查端口、服务、证书。
为什么ping能通,网页却打不开?
ping测的是ICMP协议是否通,和HTTP/HTTPS使用的80/443端口是否开放、Web服务是否正常是两回事,需要单独用telnet/nc或 /tools/port 测试对应端口。
DNS已经改了,为什么本地看到的还是老IP?
通常是本地系统或运营商的DNS缓存尚未过期,可以换用 dig @8.8.8.8 域名 等指定公共DNS服务器查询,或换一个网络环境测试。
怎么确认是不是防火墙把请求拦截了?
端口连通性测试(telnet/nc)如果连接被拒绝或超时,同时服务器上服务进程确认在运行,基本可以判断是安全组或系统防火墙规则拦截了请求。
相关教程
官方资料来源