网站无法访问的完整自检步骤 从网络到服务器逐层排查

📍 WDQWDWQD987AAAAA:216.73.216.24
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /8d6c878c531e.html
📄

网站打不开或访问异常时,与其盲目刷新页面或重启服务器,不如先停下来理清排查顺序。故障源头往往藏在网络链路、域名解析或服务器配置的某一环,沿着用户端到服务端的路径逐层检查,通常能快速定位问题并恢复访问。

1. 区分故障来自本地网络还是远端服务

排查的第一步是确认问题出在哪一侧。最简单的方式是切换网络环境做对比测试:用手机流量访问网站,如果正常,而同一设备连接家里WiFi时打不开,问题大概率出在本地路由器、DNS缓存或运营商线路。反之,如果只有某个地区或某家运营商的用户反映无法访问,而其他地区正常,则需要怀疑CDN节点或跨网线路的连通性。

1.1 验证域名解析是否指向正确服务器

在电脑命令行执行ping 你的域名nslookup 你的域名,检查解析出的IP是否与服务器实际IP一致。如果返回的是旧IP或解析记录为空,说明A记录或CNAME配置有误,也可能是刚修改过解析但尚未全球生效。此时应登录域名注册商后台,逐条核对解析记录,同时检查CDN控制台中的源站IP和回源设置是否填写正确。

1.2 测试端口连通性与防火墙放行规则

解析正常、服务器也能ping通,但浏览器依然打不开,就要检查80和443端口是否放行。云服务器用户需进入安全组或防火墙策略,确认Web端口已添加入方向规则。本地可用telnet 服务器IP 80命令测试连通性,如果连接被拒绝或长时间无响应,基本可判断是本地防火墙、云端安全组或运营商端口策略拦截所致。

2. 登录服务器检查资源占用与服务运行状态

网站响应缓慢、请求大面积超时,往往是服务器资源已经告急。CPU满负荷、内存不足、磁盘空间耗尽或带宽被打满,都会导致新请求排队,最终表现为访问速度越来越慢直至不可用。通过SSH登录后,依次执行topfree -hdf -h三条命令,即可快速评估当前资源余量。

2.1 揪出消耗资源的异常进程

在top界面按CPU占用率排序,仔细观察排名靠前的进程。常见的高占用元凶包括:被入侵者植入的挖矿程序、数据库慢查询或死循环、未限制频率的恶意爬虫。对照Nginx或Apache访问日志会更有针对性:若发现某个URL被同一IP短时间高频请求,产生上万条记录,基本可判定为脚本刷接口,找到后封禁该IP即可。

2.2 关注磁盘写满与swap耗尽风险

磁盘使用率超过80%时应立即处理,一旦系统日志或临时文件挤占剩余空间,程序将无法写入缓存或会话文件,网站会突然返回500错误。清理历史日志、无用临时文件和过期备份通常能立竿见影。内存方面要留意swap交换分区的占用,若free -h显示swap持续增长,说明物理内存已耗尽,系统在靠频繁换页勉强运行,此时应排查内存泄漏的应用或考虑扩容。

3. 确认Web服务与后端进程是否正常启动

资源正常而网站仍无法访问时,需要检查Web服务进程本身。执行systemctl status nginxps aux | grep apache查看服务是否在运行。服务意外停止可能是配置语法错误、启动脚本异常或端口被占用导致。若服务在运行却访问异常,可执行curl -I 服务器IP测试本地回环请求,观察HTTP状态码:500系列错误需查看应用日志,502或504则通常指向PHP-FPM或数据库连接失败。

3.1 检查应用层日志定位错误线索

服务进程正常但页面报错时,日志是定位问题最直接的线索。Nginx错误日志位于/var/log/nginx/error.log,PHP-FPM日志通常在/var/log/php-fpm.log。查看最近一段时间的报错信息,重点关注数据库连接失败、文件权限不足或代码异常等关键词。例如权限错误,运行chown -R www-data:www-data调整网站目录属主与属组即可解决。

4. 核查域名备案、SSL证书与到期时间

若服务器和网络链路均无异常,还要留意一些容易被忽略的隐性因素。域名未备案或备案被注销,国内机房会直接阻断访问;SSL证书过期,浏览器会提示不安全并拦截页面加载。访问域名时用openssl s_client -connect 域名:443可查看证书有效期,确保证书未过期且与域名匹配。此外检查域名和服务器的续费状态,避免因到期未及时续费导致解析被暂停。

5. 常见问题

5.1 网站打不开但能ping通,是什么原因?

这通常说明网络链路畅通,但Web服务或端口配置有问题。检查80和443端口是否放行,确认Nginx或Apache进程是否在运行,同时查看防火墙规则是否拦截了HTTP/HTTPS请求。

5.2 重启服务器后网站恢复了,但过几天又打不开怎么办?

说明存在持续性的隐患,常见原因包括内存泄漏、磁盘空间周期性写满,或存在定时任务触发异常。建议重启后立即观察topdf -h数据变化,排查是否有进程内存占用持续增长,并清理不必要的定时任务。

5.3 只有手机流量能打开网站,WiFi不行,怎么处理?

问题大概率在本地网络环境。尝试重启路由器清除缓存,在电脑上更换DNS服务器为公共DNS如114.114.114.114或8.8.8.8,并检查路由器是否有黑名单或上网行为管理功能误拦截了该域名。

6. 总结

网站无法访问时,按“本地网络→域名解析→端口放行→服务器资源→Web服务→证书与备案”的顺序逐层排查,多数问题都能在短时间内锁定。日常建议记录常用服务器的资源基线和日志路径,遇到故障时能大幅缩短定位时间。排查过程中注意留存异常情况截图或日志片段,便于后续分析或寻求专业支持。

图1 图2

nginx