Linux网络故障如何排查?

话题来源: 命令行更换IP后不生效?检查这两个地方

遇到Linux网络故障真是让人头大,特别是当你明明按照教程操作了,网络却还是死活不通的时候。记得有次我在凌晨三点折腾一台远程服务器,改完IP后死活连不上,那种抓狂的感觉现在还记忆犹新。其实排查Linux网络问题是有章可循的,关键是要有个清晰的排查思路。

先搞清楚问题的症状

网络问题最怕的就是盲目操作。你得先搞清楚到底是哪里出了问题——是本地连接有问题,还是路由出了问题?是DNS解析失败,还是防火墙在作怪?我通常会从最基础的ping命令开始,先ping 127.0.0.1测试本地网络栈,再ping网关,最后ping外网IP。这样一步步缩小排查范围。

那些容易忽视的细节

很多时候问题就出在一些小细节上。比如网卡的双工模式设置不对啦,MTU值不匹配啦,甚至是网线接触不良这种低级问题。有一次我就遇到个奇葩情况:服务器能ping通网关,但就是上不了网,折腾半天才发现是网卡的speed被强制设成了10Mbps,而交换机端口是100Mbps的——这种问题谁会想到啊!

还有一个常见但容易被忽略的点是网络接口的命名规则。自从systemd引入可预测的网络接口命名后,什么ens33、enp0s3这种奇怪的接口名经常让人摸不着头脑。用ip link show命令看清楚实际的接口名真的很重要。

实用排查命令大全

# 查看所有网络接口信息
ip a

# 查看路由表
ip route

# 测试网络连通性
ping -c 4 8.8.8.8

# 检查DNS解析
dig example.com

# 查看ARP缓存
ip neigh

# 追踪网络路径
traceroute 8.8.8.8

# 查看网络连接状态
ss -tulnp

# 检查防火墙规则
iptables -L -n -v

这些命令组合使用,基本上能诊断出90%的网络问题。不过我建议每次排查时都用ip命令替代老旧的ifconfigroute,毕竟前者能提供更详细的信息。

最后说个经验之谈:改网络配置前一定要做好备份,特别是远程服务器。我就吃过这个亏,一次鲁莽的修改导致服务器失联,最后不得不跑去机房插显示器。血的教训啊!

评论