connect: Network is unreachable解決方法

自己做实验搭建环境一般都用 VirtualBox 的虚拟主机来做的,安装好一个系统,把基本初始化都做好,然后把它作为基础镜像,需要新的主机直接复制生成就可以使用了,也比较的方便。但是复制生成新的虚拟主机会有一个 MAC 地址的问题,即使在复制生成新的虚拟主机时选择“重新初始化所有网卡的 MAC 地址”,实际上新生成的虚拟机中会有两个网卡,比如 eth0 和 eth1,eth0 是原来主机的网卡,eth1 是新生成的网卡,显然如果复制生成多个虚拟主机,那都有一个相同的 eth0 网卡,这肯定不行的,所以还要做些初始化,具体的步骤写成一个脚本了,见这个文章:虚拟主机复制后的网络初始化设置

那个脚本可以删除多余的网卡,可以手动设置新 IP,设置主机名,它自动去修改 ifcfg-eh0 文件里的参数。不过我忘记了 NETWORK 参数和 GATEWAY 参数也需要根据外部的局域网环境做修改,这次问题就是这么产生的。

虚拟主机改好了 IP 地址(192.168.1.120),DNS 地址也正确(设置为路由器地址 192.168.1.1),从虚拟主机也可以 ping 通 DNS 地址,但ping 外网发现是不通的,执行 ping baidu.com 显示:
connect: Network is unreachable。后来发现是忘记了 ifcfg-eth0 文件里面的 NETWORK 参数和 GATEWAY 参数也需要修改,复制过来的参数是 192.168.0.0 和 192.168.0.1,应该改为192.168.1.0 和 192.168.1.1。当然这个网段地址是根据你自己机器外接的局域网来改的。

查找问题:

1,执行 route -n 查看路由表,发现没有默认网关:

[root@vm2 network-scripts]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0

2,检查 ifcfg-eth0,发现 GATEWAY 和 NETWORK 都不对,写的是 192.168.0.1 和 192.168.0.0,改成 192.168.1.1 和 192.168.1.0 就好了,重启一下网络 service network restart

3,再看下 route -n:

[root@vm2 network-scripts]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

默认网关出来了。然后试了下可以 ping 通外网地址了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容