为什么ping显示connect:network is unreachable,如何排查网络不通问题?
排查流程图
1. 检查IP和网卡状态 → 无IP? → 配置DHCP/静态IP
2. 检查路由表 → 无默认网关? → 手动添加网关
3. ping网关 → 不通? → 检查物理网络/防火墙
4. ping外网IP → 不通? → 检查NAT/ISP连接
5. ping域名 → 失败? → 检查DNS配置
- 检查本地IP地址和网卡状态
命令(Linux/Windows)
# Linux
ip a # 或 ifconfig
ip route # 查看路由表# Windows
ipconfig /all
route print
关键点
确认网卡已启用(UP状态)。
检查是否分配了有效的IP地址:
若为 DHCP自动获取,确保能获取到IP(如 192.168.x.x)。
若为 手动配置,检查IP、子网掩码是否与局域网匹配。
- 验证默认网关是否存在
# Linux
ip route | grep default# Windows
route print | findstr 0.0.0.0
可能问题
无默认网关:需手动添加(见下文)。
网关不可达:检查网关IP是否正确,且物理网络无隔离(如VLAN、防火墙)。
手动添加网关(临时)
# Linux
sudo ip route add default via <网关IP> dev <网卡名> # 如 ens33# Windows
route add 0.0.0.0 mask 0.0.0.0 <网关IP>
- 测试网关连通性
ping <网关IP>
若不通:
-
检查物理连接(网线、Wi-Fi)。
-
确认网关设备(如路由器)正常运行。
-
检查防火墙是否阻止ICMP(临时关闭测试):
# Linux
sudo iptables -F # 清空防火墙规则(临时)# Windows
netsh advfirewall set allprofiles state off
- 检查DNS解析(仅限域名ping失败时)
ping 8.8.8.8 # 测试直接IP能否通
nslookup www.baidu.com # 检查DNS解析
若IP通但域名解析失败:
-
修改 /etc/resolv.conf(Linux)或网卡DNS设置(Windows)。
-
使用公共DNS(如 8.8.8.8 或 114.114.114.114)。
- 排查防火墙和网络服务
sudo systemctl status firewalld # CentOS/RHEL
sudo systemctl status ufw # Ubuntu/Debian
- 检查VMware/虚拟化设置(虚拟机场景)
-
网络模式:
-
桥接模式:确保虚拟机IP与主机同网段。
-
NAT模式:检查VMware NAT服务是否运行(Windows服务管理器)。
-
-
虚拟网络编辑器:
- 打开VMware → 编辑 → 虚拟网络编辑器 → 修复默认配置。
- 高级路由排查
查看完整路由表
# Linux
ip route show table all# Windows
route print
确认是否存在冲突的路由规则(如多网卡环境)。
跟踪路由路径
# Linux
traceroute 8.8.8.8# Windows
tracert 8.8.8.8
- 其他可能原因
IP冲突:局域网内有相同IP的设备。
网卡驱动问题:更新驱动或重新加载模块(Linux:sudo modprobe <驱动名>)。
物理网络限制:企业网络可能禁用ICMP或隔离端口。