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从客户端侧测试端口可达性,比看本地配置更直接
基本上就这些。顺序对了,命令用准了,大部分所谓“疑难杂症”三分钟内就能划清责任边界。






























