Linux 网络故障排查:从网卡到路由的定位思路 - 夜莺博客

Linux 网络故障排查:从网卡到路由的定位思路

服务器无法访问时,盲目重启服务或更换网线往往解决不了问题,正确的做法是按照"层层筛选"的思路缩小故障范围。本文分享生产环境 Linux 网络故障排查的整体方法论:先判断是本机问题还是网络上其他设备的问题,如果同一网络环境中的其他主机正常,就去路由器等网络设备上检查是否有限制,否则问题就在本机。接下来用 ethtool、ping、route、nslookup、tracepath 等命令逐层定位,覆盖网卡、防火墙、IP 配置、路由、DNS、数据包路径六大环节。

一、网线和网卡设置检查

ethtool ens33
ethtool -i ens33
ethtool -p ens33 10
ethtool -S ens33

先看网卡灯是否亮起,再用 ethtool 查看链路是否物理连通(重点看 Speed、Duplex、Link detected 字段)。-i 查看驱动信息,-p 让网卡 LED 闪烁以区分物理位置,-S 查看收发字节、广播包等统计参数,-s 可修改速率与双工模式。

二、SELinux 与防火墙排查

这两个是最容易产生干扰的项目。排查网络故障时务必确认 selinux 状态与防火墙规则是否放行所需端口,避免在错误的方向上浪费时间。

三、IP 与网关配置

使用 ifconfig 或 nmcli 查看/设置 IP 地址和网关,确认 IP 配置与局域网其他计算机没有冲突。

四、ping 连通性测试

ping -c 3 -i 0.5 -n -s 1024 -I 192.168.2.220 192.168.2.220

-c 指定次数、-i 间隔、-s 数据包大小、-I 指定源地址(源地址必须是本地网卡上存在的配置)。先 ping 局域网主机,再 ping 网关,判断主机到网关的通信是否正常。

五、路由表检查

很多时候 IP 没配错、网卡也正常,但路由配置不正确导致网络问题。用 route 命令查看路由表,多网卡服务器尤其要注意各网卡不同网段时的路由走向,必要时修改静态路由配置。

六、DNS 解析验证

理解 /etc/hosts 与 /etc/resolv.conf 的解析顺序,用 nslookup、dig、host 验证域名解析是否正常——网页打不开但 IP 能通时,问题十有八九在 DNS。

七、追踪数据包路径

tracepath -b www.example.com -l 1000 -m 5

tracepath 替代了以前的 traceroute:-n 只显示 IP 不查主机名(DNS 失效时常用),-m 设置最大 TTL,-p 指定探测端口。通过逐跳输出可以定位网络中断的网关位置。最后,若所有检查都正常仍无法连通,就要考虑硬件故障,更换硬件验证。

更多参考:适合初学者的 17 个最佳 Linux 网络故障排查命令tcpdump 抓包实战指南

原文链接:https://www.cnblogs.com/yihr/p/17778962.html