Linux服务器网络故障排查全流程指南

Linux服务器网络故障排查全流程指南 1. Linux服务器网络不通排查SOP概述遇到Linux服务器网络不通的情况作为运维人员最需要的是系统化的排查思路。我整理了这份标准操作流程(SOP)涵盖从基础检查到深度诊断的全套方法。这套流程在电商、金融、游戏等行业的服务器运维中经过反复验证能解决90%以上的网络连通性问题。网络不通的常见表象包括无法SSH连接、服务端口无法访问、内外网通信失败等。这些问题可能由配置错误、防火墙拦截、路由异常、硬件故障等多种原因导致。通过这套SOP你可以像老手一样快速定位问题层级——是物理层、网络层还是应用层的问题。2. 基础环境检查2.1 物理连接状态确认首先检查最基础的物理连接# 查看网卡物理连接状态 ip link show # 或使用老式命令 ifconfig -a正常状态下应显示UP例如state UP。如果看到DOWN需要先激活网卡ip link set eth0 up注意如果网卡反复掉线可能是网线接触不良或交换机端口故障。我遇到过一例因机房老鼠咬断网线导致的诡异断网这种硬件问题最容易被人忽视。2.2 IP地址配置检查确认IP地址是否正确配置ip addr show # 重点检查 # 1. 是否有IPv4地址inet字段 # 2. 子网掩码是否正确 # 3. 是否有多余的IP冲突常见问题包括未获取到DHCP地址查看/var/log/messages静态IP配置错误核对/etc/sysconfig/network-scripts/ifcfg-*文件多网卡配置冲突3. 网络层连通性测试3.1 网关可达性测试# 先确认默认网关 ip route show # 然后ping网关 ping -c 4 192.168.1.1如果网关不通检查网关IP是否配置正确用arp -an查看是否解析到MAC地址尝试直连网关测试绕过交换机3.2 外部网络测试# 测试DNS解析 nslookup example.com # 测试外网连通性 ping -c 4 8.8.8.8如果DNS解析失败但IP可达检查/etc/resolv.conf配置测试其他DNS服务器如114.114.114.1144. 服务端口诊断4.1 本地端口监听检查# 查看所有监听端口 ss -tulnp # 或使用netstat netstat -tulnp重点关注目标服务是否正在运行如sshd、nginx是否监听在正确IP上0.0.0.0表示所有IP是否有权限问题非root用户不能监听1024以下端口4.2 远程端口连通性测试当telnet不可用时很多新系统默认不安装可以用这些替代方案# 使用nc nc -zv 192.168.1.100 22 # 使用bash内置 timeout 1 bash -c /dev/tcp/192.168.1.100/22 echo Open || echo Closed端口不通的常见原因服务未启动防火墙拦截见下一节安全组/ACL限制中间网络设备阻断5. 防火墙与安全策略排查5.1 本地防火墙检查# iptables iptables -L -n -v # firewalld firewall-cmd --list-all # nftables nft list ruleset我曾遇到一个典型案例某台服务器突然无法访问MySQL最后发现是有人误操作添加了DROP规则。建议使用iptables-save备份当前规则临时清空规则测试生产环境慎用5.2 云平台安全组检查对于阿里云、AWS等云服务器登录云控制台检查安全组入站/出站规则特别注意优先级规则经验云平台安全组规则是独立于系统防火墙的很多灵异事件都是因为这里配置错误。6. 路由与高级网络诊断6.1 路由追踪# 基本traceroute traceroute 8.8.8.8 # 使用TCP模式避免ICMP被禁 traceroute -T -p 80 example.com分析要点在哪一跳开始不通是否有非对称路由去程回程路径不一致是否存在路由环路6.2 MTU问题诊断# 测试最佳MTU ping -M do -s 1472 8.8.8.8 # 逐步减小1472直到能通MTU不匹配会导致大包被丢弃表现症状是小文件传输正常大文件失败HTTPS等加密连接不稳定7. 常见问题速查表现象可能原因排查命令SSH连接超时防火墙拦截、sshd未运行、端口更改systemctl status sshd,ss -tlnp能ping通但端口不通服务未启动、本地防火墙、安全组nc -zv IP PORT,iptables -L间歇性断网网络抖动、ARP问题、网卡故障ip neigh,ethtool eth0DNS解析失败resolv.conf错误、DNS服务不可达dig 8.8.8.8 example.com外部无法访问服务NAT未配置、云平台安全组、监听IP错误ss -tulnp, 检查监听0.0.0.08. 日志分析与高级工具8.1 关键日志位置# 系统日志 tail -f /var/log/messages # 网络相关日志 journalctl -u NetworkManager --no-pager # 内核日志 dmesg | grep -i eth08.2 tcpdump抓包分析# 抓取eth0网卡的所有80端口流量 tcpdump -i eth0 port 80 -w capture.pcap # 简单分析 tcpdump -nn -r capture.pcap抓包分析要点三次握手是否完成SYN/SYN-ACK/ACK是否有RST异常断开是否收到ICMP不可达消息9. 网络配置持久化排查并修复问题后确保配置持久化# CentOS/RHEL nmcli con up eth0 # 或 systemctl restart network # Ubuntu/Debian netplan apply血泪教训曾经有一次调试到凌晨3点解决问题结果重启后配置丢失——因为忘了持久化配置。现在我的检查清单第一条就是修改是否写入了配置文件10. 预防性维护建议备份关键配置文件cp /etc/sysconfig/network-scripts/ifcfg-eth0 ~/backup/ iptables-save ~/backup/iptables.rules配置监控告警使用PrometheusAlertmanager监控网络质量对关键端口设置定时探测文档记录记录网络拓扑图维护IP地址分配表记录所有变更操作这套SOP的核心思想是从底层到高层逐层排查就像剥洋葱一样。实际使用时不必完全按顺序可以根据经验跳过某些步骤。我在团队内部推行这套方法后平均故障解决时间从2小时缩短到了15分钟。