VPS使用过程中突然无法连接,控制台返回Network is unreachable,这是运维工作里很让人紧张的报错。它和连接超时不一样,这条提示含义很明确:服务器找不到可用路由,不清楚数据包的转发目标。遇到这个报错不用立刻提交工单,多数故障根源在服务器内部,自行排查就能修复。
第一步先定位故障范围。使用VPS服务商提供的VNC或者控制台工具,例如VPSNet面板内置noVNC登录服务器,此时SSH基本已经失效。进入系统之后优先查看网卡状态,输入ip a或者ifconfig -a。如果eth0、ens3这类网卡状态标记为DOWN,说明网卡没有启动。执行ip link set dev eth0 up手动启用网卡,或者使用ifup eth0,网卡名称以本机查询结果为准。网卡启动完成,尝试ping网关验证连通性。

网卡状态显示UP,但依旧提示Network is unreachable,大概率是默认路由丢失。路由表缺少default via <网关IP>条目,系统不知道出站流量转发网关。执行ip route show或者route -n查看路由表,输出结果没有default开头条目,手动添加路由:sudo ip route add default via 你的网关IP dev eth0。网关IP一般写在服务商开机通知邮件,或者控制面板网络信息页面。这条命令添加的路由属于临时生效,服务器重启配置就会丢失,想要永久保存需要写入/etc/network/interfaces或者/etc/sysconfig/network-scripts/ifcfg-eth0配置文件。
路由表存在default条目,报错依旧存在,就要核对网关地址正确性。部分用户迁移机房或者更换服务器之后,网关地址发生变更,但网络配置文件没有同步修改,默认路由指向不存在网关,系统自然无法转发数据包。把ip route show输出内default via后的IP地址,和服务商控制面板给出真实网关对比,不一致就删除旧路由重新添加。
还有一类隐蔽故障来自网络服务冲突。部分系统同时运行NetworkManager和传统networking服务,两个服务争夺网络管理权限,导致网络配置加载异常。有人执行systemctl restart networking提示Unit networking.service not found,原因就是系统只启用NetworkManager管理网络,这种情况改用systemctl restart NetworkManager重启服务即可恢复网络。反过来,如果系统没有安装NetworkManager,就使用systemctl restart networking或者ifupdown工具操作。
排查完服务器内部设置,还要查看服务商侧是否出现故障。VPSNet这类服务商偶尔会有机房级别网络故障,新加坡机房曾经出现大规模丢包与延迟飙升,持续数小时才修复。浏览服务商状态页面或者公告板块,如果公告标注对应机房正在处理网络故障,本地操作无法解决,只能等待官方修复。
一套实用排查顺序:确认网卡是否UP,检查路由表是否存在默认路由,核对网关IP,最后查看服务商故障公告。走完这四步,绝大多数Network is unreachable故障都能定位根源。修复完成务必固化网络配置,防止重启服务器再次出现同类问题。