Oracle VirtualBox 使用桥接网络完成主机和虚拟机之间的双向通讯

时间:2021-08-26 04:46:29

最近刚换了新的笔记本电脑,终于使用上intel i7处理器,可以使用硬件虚拟化技术安装系统。配置如下:

主机      ThinkPad P50s   OS Window 10

虚拟机软件  Oracle VirtualBox (个人感觉速度很快,并且可以创建兼容 VMWare 和Hyper-V的虚拟机文件格式)

虚拟机操作系统  Ubuntu Server 12.04.5 64位

VirtualBox中默认使用的是网络地址转换(NAT)的网卡设置,这种方式的好处是安装完毕后不用做任何设置就可以在虚拟端系统上网,但是坏处是无法在网络中访问到虚拟端。

将虚拟机的网络设置为桥接网络后,虚拟机和主机可以使用同一个网段的IP地址,在网络中主机和虚拟机是平等的,可以相互访问。设置完毕后,我遇到了以下问题:

1.     在主机中可以ping通虚拟机的IP,而在虚拟机中无法ping通虚拟机的IP;

2.     在虚拟机中无法使用apt-get来安装软件,执行apt-get update指令汇报如下错误:

sudo apt-get update

Get:1 http://archive.ubuntu.com precise Release.gpg

Get:2 http://ppa.launchpad.net precise Release.gpg

Get:3 http://archive.ubuntu.com precise Release

Get:4 http://ppa.launchpad.net precise Release.gpg

Get:5 http://ppa.launchpad.net precise Release

Ign http://archive.ubuntu.com precise Release

E: GPG error: http://archive.ubuntu.com precise Release: The following signatures were invalid: NODATA 1 NODATA 2

解决这两个问题的方式是:

1.     关闭主机Windows的网络防火墙;

2.     为虚拟机在添加一个网卡,网卡使用网络地址转换(NAT)方式设置。

以下是我的操作截图:

  1. 设置虚拟机网卡为桥接模式,具体设置如下:
Oracle VirtualBox 使用桥接网络完成主机和虚拟机之间的双向通讯

注意:设置及完毕后此时虚拟机的网络是使用DHCP自动获取IP地址,此时的IP地址已经和主机IP在同一个网段了。同时根据VirtualBox的官方指引说控制芯片自动选择Intel PRO/1000 MT 桌面,这里有多种控制芯片可供选择,官方指引中说对于主机为Windows Vista及以上版本的情况下,优选Intel PRO/1000 MT 桌面。

这个时候在主机关闭防火墙后,主机和虚拟机就可以相互ping通,

虚拟机ping主机:

Oracle VirtualBox 使用桥接网络完成主机和虚拟机之间的双向通讯

主机ping虚拟机:

Oracle VirtualBox 使用桥接网络完成主机和虚拟机之间的双向通讯

但此时执行apt-get命令就会报GPG error错误:

Oracle VirtualBox 使用桥接网络完成主机和虚拟机之间的双向通讯

为了解决这个错误,就要执行第二步操作,为虚拟机网卡,网卡使用网络地址转换(NAT)方式设置。

  1. 关闭虚拟机,为虚拟机添加一个网卡,网卡使用桥接网络方式设置,设置如下图:

Oracle VirtualBox 使用桥接网络完成主机和虚拟机之间的双向通讯

然后重启,虚拟机。此时虚拟机的网络硬件配置信息如下:

Oracle VirtualBox 使用桥接网络完成主机和虚拟机之间的双向通讯

重启成功后,执行ifconfig –a指令可以看到虚拟机此时的网络设备如下:

Oracle VirtualBox 使用桥接网络完成主机和虚拟机之间的双向通讯

为了便于后面的开发,我们建议将eth3设置静态获取IP地址,使用sudo vi /etc/network/interfaces命令做如下编辑:

Oracle VirtualBox 使用桥接网络完成主机和虚拟机之间的双向通讯

保存后执行 sudo /etc/init.d/networking restart指令重新加载网络,此时虚拟机就是一个和主机完全平等并且可以下载软件进行更新的系统了。