网站出现“打不开”或“访问卡顿”是运维中最常见的问题。排查的核心逻辑必须遵循**“由外到内、由浅入深”**的原则,先排除用户本地环境问题,再逐步定位到网络链路、服务器资源及应用代码层。
结合你作为网站维护者的身份,以下是一套系统性的全链路排查方案:
在动手敲命令前,先通过简单测试判断故障的影响面,这能直接决定排查方向:

如果确认是集体故障,首先检查域名解析和网络传输是否正常。
DNS 解析检查
nslookup 你的域名。ipconfig /flushdns(Windows)清除 DNS 缓存。网络连通性与端口测试
ping 你的域名。如果能 ping 通但网页打不开,说明网络层通畅,问题出在应用层(如 Web 服务未启动或端口被拦截)。telnet 你的域名 80(或 443 端口)。Connected 或空白界面:说明端口开放,Web 服务正常监听。连接失败 或 超时:说明服务器防火墙、云厂商安全组未放行 80/443 端口,或者 Web 服务(Nginx/Apache)未启动。tracert 你的域名(Windows)或 traceroute(Linux/Mac)追踪路径。若在某一个节点连续出现超时(* * *),说明该处路由器或运营商链路存在拥塞,需联系服务商处理。如果网络链路通畅但依然无法访问或极度卡顿,问题通常出在服务器内部。请通过 SSH 登录服务器执行以下检查:
| 排查维度 | 关键命令/操作 | 故障现象与解决方案 |
|---|---|---|
| 资源负载 | top 或 htop | CPU/内存满载:服务器资源耗尽会导致请求排队甚至丢弃。排查是否有异常进程(如挖矿病毒)占用资源,必要时终止进程或升级配置。 |
| 磁盘空间 | df -h | 磁盘使用率 100%:磁盘写满会导致数据库无法写入、日志无法记录,直接引发 500 错误。需清理旧日志或扩容磁盘。 |
| 服务状态 | systemctl status nginxsystemctl status php-fpm | 服务未运行:Web 服务或后端语言服务(如 PHP-FPM、Tomcat)意外停止。执行 start 重启服务,并设置开机自启。 |
| 错误日志 | tail -f /var/log/nginx/error.log | 精准定位:日志是排查的“黑匣子”。 • 502 Bad Gateway:后端服务(如 PHP-FPM)未启动或超时。 • 503 Service Unavailable:并发连接数超限,服务器过载。 • 404 Not Found:网站根目录配置错误或文件丢失。 |
如果网站能打开但加载缓慢,需借助浏览器开发者工具(F12)进行分段测速:
查看 TTFB(首字节时间)在 Chrome 开发者工具的 Network(网络) 面板中,点击第一个文档请求,查看 Timing 里的 Waiting (TTFB) 指标。
核心性能指标监控使用 Chrome 的 Lighthouse 审计功能,重点关注以下指标:
如果服务器资源正常、端口开放,但国内用户 consistently 无法访问,而通过海外代理却能正常打开,极可能是域名或 IP 被防火长城(GFW)拦截。
按照上述流程,绝大多数访问故障都能在 10 分钟内定位到具体环节。建议在日常维护中部署常态化监控(如 UptimeRobot),一旦检测到宕机或响应超时,立即通过邮件或短信告警,变“被动救火”为“主动防御”。