VMware种etho网卡配置静态ip连接连不了外网的问题解决
为什么会有这个问题?
因为我之前想用xshell来远程连接我的虚拟机,而xshell需要用固定的ip来连接,因此我需要虚拟机eth0这个网卡的ip,并且这个ip应该设置为固定的。
因为刚开始了解Linux的网络,所以对一些概念了解不是很全面,但是我尽可能把自己理解的写出来,后面回头看的时候,也可以在原来的基础上更改。
现象描述
我们网卡的配置文件在/etc/sysconfig/network-scripts/目录下面。
打开配置文件vi /etc/sysconfig/network-scripts/ifcfg-eth0
可以看到BOOTPROTO=dhcp,即动态获取ip地址,且可以连接外网如图所示:
那么为什么更改为static之后连接不上外网了呢?现象如图所示:
原因分析
先理清楚,vmware的静态连接如何访问外网的架构。
必须要理清楚这个,我们知道虚拟机可以安装多个操作系统,让虚拟机种各个操作系统进行通信,亦或者说是让虚拟机和宿主机进行通信是离不开网络的知识的。
参考了博文:https://blog.csdn.net/ai2000ai/article/details/81359559
vmware虚拟机的上网方式有三种:桥接、NAT、仅主机。因为我是在NAT的过程中遇到问题,所以我这里理解NAT模式的上网。如下图(虚拟机->设置->网络适配器查看):
我们首先要关注两个网卡,主机网卡和虚拟网卡VMware Network Adapter VMnet8(可以在宿主机网络连接中看到),再看下图:
参考了博文:https://blog.51cto.com/13648313/2164309
如图所示:
联网功能实现是通过主机网卡和虚拟NAT设备联系,虚拟NAT设备和虚拟DHCP服务器再虚拟交换机Vmnet8上面进行连接,虚拟联网就此实现。
宿主机和虚机机的交互实现是通过虚拟网卡VMware Network Adapter VMnet8再虚拟交换机中实现,建议看全篇博文,写的可以理解,还做了实验。
小结:NAT模式,利用虚拟的NAT设备以及虚拟DHCP服务器来使虚拟机连接外网,而VMware Network Adapter VMnet8虚拟网卡是用来与虚拟机通信的。因此,就此推出了虚拟机联网的配置和虚拟机物理机通信的配置是两个概念,要分开来解决、配置。
联网配置如下:
1、编辑网卡文件,设置ip、网关,我的网卡文件为eth0。/etc/sysconfig/network-scripts/ifcfg-eth0
如下图:
注意上面的GATEWAY是网关的地址,再虚拟机种可以设置,且该文件的网关地址一定要和虚拟机的一样。设置位置如图:
但是我遇到了问题,发现我拼不通国内移动ip114.114.114.114,显示网络不可达,如下图;
原因在于没有配置路由(关于为什么没有配置路由会有这个问题,我想再后续我看的视频课程里会有补充)
于是使用route add default gw 192.168.109.78 命令添加了该网关的路由。
拼通效果如下:
如上述的配置重启后会失效,如果想持久化,那么可以使用可视化页面进行配置,如图:
设置默认网关永久:vi /etc/sysconfig/static-routes
如图:
后面就可以拼百度了,在这之后就成功了,如图:
有一个点比较引起我的注意,就是我的宿主机经常会断网,因此给我排查问题带来了很大的困扰,因此在调试的时候一定要确定宿主机是可以联网的。
网络种有一句话说的很好,如下:
当我们的虚拟机出现网络问题的时候,都是需要先了解清楚网络的拓扑结构再进行网络排错的,所以上面的内容就为我们提供了非常好的理论与实践知识。另外,如果可以在理解这些网络知识的前提下再去搭建各种服务,做各种测试,可以让我们做到胸有成竹的一种状态,而不再是“雾里看花,水中望月”了,相应在这样的不断尝试中,我们的综合操作能力一定会变得更强。