背景
我们在虚拟机中装Linux操作系统的主要作用是编译源代码,所以通常会在Linux中搭建一个samba服务器,
将Linux系统中存放代码的文件夹共享出来以便于在windows
下面可以使用SourceInsight
来阅读和修改代码;并且也需要Linux虚拟机可以访问外网。
这样的情况一张网卡就可以搞定,只需要在虚拟机中配置网卡为NAT
模式。
但是这样会有一个问题:就是主机每次拔插网线的时候都会使网络卡顿一会儿时间(因为主机IP地址变了之后NAT
模式需要更新),导致这段时间内不能编辑代码并且会让SourceInsight
软件一段时间内出现无响应的情况。
当然如果你不需要经常插拔网线这样也是没有问题的,可是身在一个网络设备公司我每天需要插拔网线无数次,这就很痛苦了。。。
注:以下都是在opensuse
系统中操作的。
解决办法
在虚拟机中增加一张网卡,将网卡配置为VMnet1
(仅主机模式):
增加一张网卡后,直接在Linux中执行ifconfig
命令不会看到新增的网卡,需要进入/etc/sysconfig/network/
目录进行配置:
没有配置之前是没有ifcfg-eth1
文件的,需要自己新建一个ifcfg-eth1
文件然后将ifcfg-eth0
文件中的内容复制过来。
最后重启网络服务:service network restart
现在再次执行ifconfig
命令可以看到多出来一张网卡。最后使用这个网卡的IP地址在Windows
系统中映射一个网络驱动器。
此后无论你怎么拔插主机网线都不会卡顿。此时VMnet1
(仅主机模式)模式的网卡只能与主机通信,NAT
模式的网卡可以访问外网。
科普
在虚拟机软件的菜单:编辑->虚拟网络编辑器
中可以看到三种网络模式,这也是我们配置虚拟机网卡时可供选择的三种模式;
-
VMnet0 桥接模式:选择此模式时虚拟机中的IP地址和主机IP地址在同一个网段内也就是处于同一局域网内,此时虚拟机网络和主机网络是同等地位。
-
VMnet1 仅主机模式:选择此模式时虚拟机只能跟主机通信,不能访问外网。
-
VMnet8 NAT模式:选择此模式时虚拟机中的IP地址和主机IP地址不在同一网段,在外面只能看到主机IP,虚拟机访问外网是通过主机IP访问的。 也就是说虚拟机网络是主机网络下的一个子网,需要经过NAT地址转换才可以访问外网。