Linux Web服务网络排障基础指南:五层排查法 + 查看网络服务核心命令速查
Linux Web服务网络排障基础指南五层排查法 查看网络服务核心命令速查网站连不上是运维最常遇到的问题之一。按“从下往上”的层次来排查也就是网络层 → 端口/防火墙 → 服务层 → 应用层 → 客户端/浏览器。假设物理链路没有出问题以下是一套可以直接照着操作的排障流程。第1层网络层能不能通先确认你的服务器本身能不能被访问到还是压根就连不上。本地测试# 看 IP 有没有配好ipaddr show# 看网关通不通ping192.168.50.254-c3外部测试在你自己的电脑上不是服务器上ping192.168.50.149⚠️ 重要需要确保你的电脑和服务器在同一个局域网/安全组允许 ICMP 协议。如果 ping 不通服务器没开机或 IP 配错了服务器防火墙iptables/firewalld禁了 ICMP允许的话可以临时关掉试试虚拟机网卡模式不对如 NAT/桥接配置错误云服务器安全组没放行 ICMP如果 ping 通→ 网络层没问题继续往下看。第2层端口/防火墙端口开放了吗网站能 ping 通不代表端口通。这一步检查80HTTP或443HTTPS是否开放。本地检查端口是否在监听ss-tulnp|grep-E:80|:443如果没有输出 →服务没启动跳到第3层。如果输出显示LISTEN→ 服务启动了但还要看防火墙。本地检查防火墙是否放行firewalldRocky/CentOS 默认firewall-cmd --list-all|grep-E80|443iptablesiptables-L-n|grep-E80|443ufwUbuntu 默认ufw status|grep-E80|443外部测试端口在你自己的电脑上# 检查 80 端口telnet192.168.50.14980# 或用 ncnc-zv192.168.50.14980如果连接被拒绝Connection refused→ 服务没启动超时Timeout→ 防火墙拦了。️ 扩展如果未放行执行以下命令开放端口防火墙工具放行命令永久生效firewalldsudo firewall-cmd --permanent --add-port80/tcpsudo firewall-cmd --permanent --add-port443/tcpsudo firewall-cmd --reloadiptablessudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTsudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT#但iptables规则重启会丢失需要保存service iptables save。ufwsudo ufw allow 80/tcpsudo ufw allow 443/tcpsudo ufw reload云服务器特别注意除了服务器内部防火墙云平台的安全组也要检查比如阿里云/腾讯云/华为云的控制台里有没有放行 80/443 端口。第3层服务层Web 服务启动了吗检查 Web 服务Nginx/Apache/Tomcat是否正常运行。systemctl status nginx systemctl status httpd systemctl status tomcat如果服务是inactive (dead)或failed尝试启动并看报错sudosystemctl start nginx journalctl-unginx-n20# 看最近20条日志检查服务配置nginx-t# Nginx 检查配置语法apachectl configtest# Apache 检查配置如果服务运行中但端口不在监听很可能是配置错误导致启动失败systemctl status会显示失败或者绑定到了127.0.0.1而不是0.0.0.0只允许本机访问。检查配置文件里的listen 80或listen 0.0.0.0:80。第4层应用层网站程序正常吗在服务器本地访问网站绕过外部网络问题。只显示响应头这步主要看状态码和响应头不下载网页内容。curl-Ihttp://localhost:80 或者看完整通信过程详细排障 这步能看完整的请求和响应过程包括 DNS、TCP 连接、发送的请求头等。curl-vhttp://localhostcurl-vhttp://127.0.0.1如果返回正常 HTML比如返回200→ 服务没问题问题可能在防火墙/安全组。如果返回 404→ 网站根目录路径不对或文件不存在。如果返回 502/504→ 后端如 PHP-FPM、Tomcat挂了。如果连接被拒绝→ 端口没监听回到第3层。第5层客户端/浏览器看看具体报错浏览器里输入http://你的IP看返回的错误代码状态码含义排查方向连接超时请求没到达服务器防火墙/安全组/网络问题连接被拒绝端口没开放或服务没启动检查服务状态和防火墙404 Not Found路径不存在检查网站根目录和路由配置403 Forbidden权限不足检查目录权限或 Nginx 配置502 Bad Gateway后端服务不可用检查 PHP-FPM/Tomcat 是否运行504 Gateway Timeout后端响应超时后端服务负载高或卡住了500 Internal Server Error程序代码报错查看应用日志如 PHP 错误日志扩展不同状态码代表了什么状态码含义排障方向一句话连接超时请求没到达服务器查防火墙/安全组/网络连接被拒绝端口没开放或服务没启动ss -tulnp查端口systemctl status查服务403权限不足ls -la查目录权限检查 Nginx deny 规则SELinux404资源不存在检查root/alias路径文件是否真的存在405请求方法不允许检查 Nginxlimit_except后端路由配置413请求体过大Nginxclient_max_body_size改大429请求太频繁检查 Nginxlimit_req限流配置500服务器内部错误查应用日志PHP 错误、Tomcat catalina.out502网关错误后端挂了systemctl status php-fpm后端服务是否运行503服务不可用服务过载或正在维护检查连接数504网关超时后端太慢Nginxproxy_read_timeout改大优化慢查询304缓存命中✅ 正常不用管️ 快速检查清单用下面一组命令快速确认# 1. 本机 IPipaddr show|grepinet# 2. 服务状态systemctl status nginx# 3. 端口监听ss-tulnp|grep:80# 4. 防火墙firewall-cmd --list-all# 或 iptables -L -n# 5. 本地访问测试curl-Ihttp://localhost# 6. 日志tail-20/var/log/nginx/error.log 常见问题快速定位现象最可能的原因快速解决本机curl localhost通外网不通防火墙/安全组放行 80/443服务状态failed配置语法错误nginx -t检查配置端口没监听服务没启动systemctl start nginx返回 502PHP-FPM 挂了systemctl restart php-fpm返回 404网站根目录不对检查root路径是否存在浏览器能访问手机不能云安全组或网络策略检查安全组规则linux查看网络服务核心命令速览排障常用1.查看类命令操作命令查看IP地址ip a或ip -4 -br addr查看路由表ip route show查看ARP缓存ip neigh show查看监听端口ss -tlnp查看已建立连接ss -tan state established查看连接统计ss -s查看防火墙规则firewall-cmd --list-all2.操作类命令操作命令测试连通性ping -c 4 目标IP追踪路由traceroute -I 目标IP动态路径分析mtr -r 目标IP测试HTTP服务curl -I http://localhost抓包分析tcpdump -i ens160 -nn port 803.排障工具选择指南问题现象首选工具备选工具服务器没IPip anmcli dev status外网不通ip routepingtraceroute端口不通ss -tlnptelnet/nc服务返回异常curl -vtcpdump网络延迟高pingmtr怀疑丢包mtrtcpdump防火墙拦截firewall-cmd --list-alltcpdump