一、网络故障排查基本原则
在进入具体问题前,记住这三个核心原则:
1. 从底层到高层:先物理层,再数据链路层,依次向上排查
2. 从简单到复杂:先检查最可能、最简单的因素
3. 变更回溯:最近有什么变动?这往往是问题的根源
二、十大常见网络故障及解决方案
故障1:设备完全无法连接网络
典型现象:
· 服务器/电脑显示“网络电缆被拔出”或“无网络访问”
· ping不通网关,也无法访问任何网络资源
排查步骤:
1. 物理层检查
# 查看网卡状态
ethtool eth0 # Linux
Get-NetAdapter # Windows PowerShell
· 检查网线是否松动、损坏
· 查看网口指示灯(绿灯常亮=链路正常,闪烁=数据传输)
· 尝试更换网线或交换机端口
2. 链路层检查
# 查看IP配置
ip addr show # Linux
ipconfig /all # Windows
3. 常见解决:
· 重启网卡:sudo systemctl restart network 或 ifdown eth0 && ifup eth0
· 检查交换机端口是否被禁用
故障2:能连内网但不能上外网
排查路径:
本机IP配置 → 网关连通性 → DNS解析 → 防火墙规则
关键命令:
# 1. 检查默认网关
ip route show default
# 2. 测试网关连通性
ping 192.168.1.1 # 假设网关IP
# 3. 测试DNS
nslookup www.baidu.com
# 或直接ping域名看是否解析
ping -c 4 www.baidu.com
# 4. 检查路由追踪
traceroute 8.8.8.8 # Linux
tracert 8.8.8.8 # Windows
常见原因:
· DNS配置错误:检查/etc/resolv.conf或网络配置中的DNS服务器
· 网关故障:联系网络管理员检查路由器状态
· 防火墙策略:检查是否有出站限制
故障3:IP地址冲突
现象:网络时断时续,系统提示IP冲突
解决方案:
1. 立即释放当前IP(临时):
# Windows
ipconfig /release
ipconfig /renew
# Linux
sudo dhclient -r eth0
sudo dhclient eth0
2.定位冲突设备:
# 扫描该IP的MAC地址
arping -c 3 192.168.1.100
# 查看ARP表
arp -a
3. 预防措施:
· 重要服务器使用静态IP时,在DHCP服务器中设置保留
· 维护IP地址分配表
· 使用dhcpd.conf中的host声明固定IP-MAC绑定
故障4:DNS解析失败
排查流程:
# 1. 测试本地解析
cat /etc/hosts
# 2. 测试DNS服务器
dig @8.8.8.8 www.example.com # 指定DNS服务器查询
# 3. 检查DNS配置
cat /etc/resolv.conf
# 确保有:nameserver 8.8.8.8
# 4. 清除DNS缓存
# Linux(nscd):
sudo systemctl restart nscd
# Windows:
ipconfig /flushdns
实用技巧:使用dig +trace查看完整解析路径,定位解析中断点。
故障5:防火墙“隐形”阻断
新人最容易忽略的问题!连接看似正常,但特定端口无法访问。
排查命令:
# 1. 检查本地防火墙规则
sudo iptables -L -n -v # Linux
Get-NetFirewallRule | Format-Table # Windows
# 2. 端口监听检查
netstat -tulpn | grep :80 # 查看80端口谁在监听
ss -tulpn # 更现代的替代命令
# 3. 从外部测试端口
telnet 服务器IP 端口号
# 或使用nc:
nc -zv 服务器IP 端口号
快速诊断脚本:
#!/bin/bash
# 快速检查服务器端口开放情况
IP=$1
PORTS="22 80 443 3306"
for port in $PORTS; do
timeout 2 bash -c "echo >/dev/tcp/$IP/$port" 2>/dev/null &&
echo "端口 $port: 开放" ||
echo "端口 $port: 关闭"
done
故障6:VLAN配置错误
现象:同一网段设备突然无法互通
检查点:
1. 交换机端口VLAN配置是否变更
2. 服务器是否配置了错误的VLAN ID
3. Trunk端口配置是否正确
Linux VLAN检查:
# 查看VLAN配置
cat /proc/net/vlan/config
# 或使用ip命令
ip link show
故障7:MTU不匹配导致传输异常
特殊现象:小包能通,大包不通;网页部分加载失败
诊断方法:
# 发现MTU问题
ping -M do -s 1472 -c 3 目标IP # 测试不同包大小
# 如果1472失败,尝试减少大小
# 查看当前MTU
ip link show eth0 | grep mtu
解决方案:
# 临时修改MTU
sudo ip link set dev eth0 mtu 1400
# 永久修改(CentOS/RHEL)
# 在/etc/sysconfig/network-scripts/ifcfg-eth0中添加:
# MTU=1400
故障8: 路由表混乱
现象:访问某些网络正常,某些异常
诊断命令:
# 查看完整路由表
route -n
# 或
ip route show
# 测试到目标的路由路径
traceroute 目标IP
常见修复:
# 删除错误路由
sudo ip route del 错误网络/掩码
# 添加正确路由
sudo ip route add 目标网络/掩码 via 网关 dev 接口
故障9: 网卡协商问题
排查命令:
# 查看协商状态
ethtool eth0
# 关键字段:
# Speed: 1000Mb/s
# Duplex: Full
# Auto-negotiation: on
# 强制设置(慎用)
sudo ethtool -s eth0 speed 100 duplex full autoneg off
故障10: 负载过高导致网络丢包
诊断命令:
# 1. 查看网络统计
netstat -i # 查看错误和丢弃统计
ethtool -S eth0 | grep -E "(drop|error|discard)" # 详细统计
# 2. 实时流量监控
iftop -i eth0
# 或
nload eth0
# 3. 检查连接数
ss -s # 查看总连接统计
三、网络排查工具箱
必备命令汇总
# 连通性测试
ping, traceroute, mtr
# 端口与服务
netstat, ss, nc, telnet
# 配置查看
ip, ifconfig, route, arp
# 抓包分析
tcpdump, wireshark(图形界面)
# 性能监控
iftop, nethogs, iperf3(带宽测试)
推荐可视化工具
1. Wireshark:深入分析网络包
2. MTR:结合ping和traceroute的路径分析
3. SmokePing:监控网络延迟和丢包
4. Observium/LibreNMS:自动网络发现和监控
四、建立你的排查流程清单
将以下清单保存在你的笔记中:
[ ] 1. 收集信息:故障范围、时间、受影响用户/服务
[ ] 2. 物理检查:网线、指示灯、电源
[ ] 3. 本地检查:IP配置、路由表、ARP表
[ ] 4. 连通测试:ping网关、ping外网、DNS测试
[ ] 5. 服务检查:端口监听、防火墙规则
[ ] 6. 路径分析:traceroute、MTU测试
[ ] 7. 流量分析:带宽使用、连接数、错误统计
[ ] 8. 变更检查:最近配置变更、日志分析
五、给新人的特别建议
1.保持冷静:网络故障很少是“穴难性”的,大多数有固定模式
2.记录一切:建立自己的排错知识库,记录每
次故障和解决方案
3.从简单开始:80%的网络问题是简单的(网线松动、配置错误等)
4.善用隔离法:通过分段测试缩小问题范围(如:直接连接测试、替换测试)
5.理解业务:知道这个网络服务对业务的影响,确定优先级