linux网络异常排查需按层递进:先查本机接口状态(ip addr、ethtool),再逐级ping(127.0.0.1→本机ip→网关→8.8.8.8→baidu.com),接着验证路由、dns、端口及防火墙。

Linux网络通信异常不是随机发生的,而是协议栈某一层出了问题。排查的关键不在于堆命令,而在于按层推进、逐级验证——从本机协议栈开始,到物理链路,再到远端服务,每一步都有明确的判断依据和对应工具。
看接口状态:确认网卡已就绪
这是所有排查的起点。接口DOWN或无IP,后续测试全无意义。
- 运行 ip addr show,重点检查:接口是否标有 UP 状态;是否有合法 IPv4 地址(排除 169.254.x.x 这类链路本地地址);MAC 地址是否非零且完整
- 若为 DOWN,执行 sudo ip link set ens33 up(替换为实际接口名)
- 若无地址且应走 DHCP,运行 sudo dhclient -v ens33;若需静态配置,用 sudo ip addr add 192.168.1.100/24 dev ens33
- 物理连通性可补查:ethtool ens33 中 Link detected: yes 表示网线已接通、网卡已识别
分四步 ping:快速定位故障层级
按顺序执行,哪一步失败,问题就锁定在该层及以下。
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
- ping 127.0.0.1 —— 失败说明本机 TCP/IP 协议栈异常(极少见,多为内核模块损坏)
- ping 本机局域网 IP(如 192.168.1.100)—— 失败表示接口配置未生效、驱动异常或地址冲突
- ping 网关 IP(可用 ip route | grep default | awk '{print $3}' 快速获取)—— 失败大概率是物理断连、交换机故障、VLAN 配置错误或 MAC 地址过滤
- ping 8.8.8.8 再 ping baidu.com —— 前者通后者不通,基本锁定 DNS 问题;两者皆不通但网关通,可能是路由策略、防火墙 DROP 或运营商限制
查路由与 ARP:看清数据往哪走、下一跳是否可达
路由决定路径,ARP 决定能否把包真正发出去。二者常联动出错。
- 运行 ip route show,确认存在类似 default via 192.168.1.1 dev ens33 的默认路由,且网关 IP 和出口设备正确
- 运行 ip neigh show,查看网关 IP 对应条目状态:若为 FAILED 或缺失,说明无法解析网关 MAC,常见于网关宕机、防火墙禁 ARP、VLAN 错配或物理链路异常
- 若发现 INCOMPLETE 条目过多,可用 tcpdump -i ens33 arp 抓包确认是否发出请求、是否有 reply 返回
- 手动刷新 ARP 缓存:ip neigh del 192.168.1.1 dev ens33,再 ping 一次触发重学习
验 DNS 与端口:区分域名解析失败和服务不可达
能通 IP 不代表服务可用,DNS 和端口是应用层前最后两道关卡。
- 检查 /etc/resolv.conf 是否含有效 nameserver,如 nameserver 8.8.8.8 或 114.114.114.114
- 绕过系统配置直连测试:dig baidu.com @8.8.8.8;若成功,说明本地 DNS 配置或缓存异常;加 +trace 参数可观察解析逐级过程
- 测目标端口是否开放:nc -zv example.com 443;返回 succeeded 才算真正通
- 查本机监听情况:ss -tuln | grep ':80',确认服务是否绑定正确地址(0.0.0.0 或具体 IP)与端口,而非仅 127.0.0.1










