Linux网络排错应按物理层→链路层→网络层→应用层顺序验证:先ping 127.0.0.1,再本机IP、网关、8.8.8.8;查ethtool确认物理连接,ip addr看IP合法性,RX/TX errors判断硬件异常;DNS问题需单独验证;服务访问失败须检查监听与防火墙。

Linux网络状态检测不难,但新手常因跳步骤、看错指标或误判现象而反复折腾。核心是按“物理层→链路层→网络层→应用层”顺序验证,每步只确认一个事实,不靠猜测。
别一上来就ping外网
很多新手看到网页打不开,第一反应是ping www.baidu.com,结果失败就以为“网络坏了”。其实这一步混合了DNS、路由、防火墙、远端服务等多个环节,无法定位真实问题。
- 先
ping 127.0.0.1:确认本机协议栈正常(失败说明内核网络模块异常) - 再
ping 本机局域网IP(如192.168.1.100):验证接口收发功能是否启用 - 接着
ping 网关(如192.168.1.1):判断本地链路和默认路由是否通 - 最后才测试
ping 8.8.8.8:排除DNS干扰,专注连通性本身
看到“UP”不等于网络真通
ip link show显示state UP只代表驱动加载、接口启用,不代表物理连接可靠。
- 用
ethtool eth0查Link detected: yes——这是物理链路通的关键证据 - 用
ip addr show eth0看是否有合法IP:若只有169.254.x.x(APIPA地址),说明DHCP失败或网线未接通 - 观察
RX/TX errors和dropped:非零值持续增长,大概率是网线质量差、网卡故障或交换机端口异常
DNS问题常被当成“上不了网”
能ping 8.8.8.8但ping www.baidu.com失败,90%是DNS问题,不是网络不通。
- 检查
/etc/resolv.conf内容是否有效:cat /etc/resolv.conf,确认有类似nameserver 8.8.8.8的行 - 用
dig @8.8.8.8 baidu.com +short绕过系统配置直连DNS,验证解析能力 - 注意:NetworkManager或systemd-resolved可能覆盖
/etc/resolv.conf,此时需查resolvectl status或nmcli dev show
别忽略防火墙和服务监听状态
本地服务访问失败,常被误认为是“网络问题”,其实是端口没开或被拦。
- 查服务是否真在监听:
ss -tlnp | grep :80(替换为你要查的端口) - 确认防火墙放行:
sudo ufw status(Ubuntu)或sudo firewall-cmd --list-ports(CentOS/RHEL) - 远程连不上?用
nc -zv 服务器IP 80从客户端侧测试端口可达性,比看本地配置更直接
基本上就这些。顺序对了,命令用准了,大部分所谓“疑难杂症”三分钟内就能划清责任边界。










