CXD Linux Engineer

Linux虚拟机中双网卡配置

2016-08-10

背景

我们在虚拟机中装Linux操作系统的主要作用是编译源代码,所以通常会在Linux中搭建一个samba服务器, 将Linux系统中存放代码的文件夹共享出来以便于在windows下面可以使用SourceInsight来阅读和修改代码;并且也需要Linux虚拟机可以访问外网。 这样的情况一张网卡就可以搞定,只需要在虚拟机中配置网卡为NAT模式。

nat

但是这样会有一个问题:就是主机每次拔插网线的时候都会使网络卡顿一会儿时间(因为主机IP地址变了之后NAT模式需要更新),导致这段时间内不能编辑代码并且会让SourceInsight软件一段时间内出现无响应的情况。

当然如果你不需要经常插拔网线这样也是没有问题的,可是身在一个网络设备公司我每天需要插拔网线无数次,这就很痛苦了。。。

注:以下都是在opensuse系统中操作的。

解决办法

在虚拟机中增加一张网卡,将网卡配置为VMnet1(仅主机模式):

VMnet1

增加一张网卡后,直接在Linux中执行ifconfig命令不会看到新增的网卡,需要进入/etc/sysconfig/network/目录进行配置:

没有配置之前是没有ifcfg-eth1文件的,需要自己新建一个ifcfg-eth1文件然后将ifcfg-eth0文件中的内容复制过来。

cmd

最后重启网络服务:service network restart

现在再次执行ifconfig命令可以看到多出来一张网卡。最后使用这个网卡的IP地址在Windows系统中映射一个网络驱动器。

此后无论你怎么拔插主机网线都不会卡顿。此时VMnet1(仅主机模式)模式的网卡只能与主机通信,NAT模式的网卡可以访问外网。

科普

在虚拟机软件的菜单:编辑->虚拟网络编辑器 中可以看到三种网络模式,这也是我们配置虚拟机网卡时可供选择的三种模式;

  • VMnet0 桥接模式:选择此模式时虚拟机中的IP地址和主机IP地址在同一个网段内也就是处于同一局域网内,此时虚拟机网络和主机网络是同等地位。

  • VMnet1 仅主机模式:选择此模式时虚拟机只能跟主机通信,不能访问外网。

  • VMnet8 NAT模式:选择此模式时虚拟机中的IP地址和主机IP地址不在同一网段,在外面只能看到主机IP,虚拟机访问外网是通过主机IP访问的。 也就是说虚拟机网络是主机网络下的一个子网,需要经过NAT地址转换才可以访问外网。


Comments

Content