VirtualBox 下主机与虚拟机以及虚拟机之间互通信配置

时间:2022-12-24 14:04:56

引用链接:1)http://www.it165.net/os/html/201401/7063.html

             2)http://www.cnblogs.com/sineatos/p/4489620.html

 

VirtualBox下共有四种网络配置方式:NAT,Bridge,Internal,Host-only。这里我们只用到NAT和Host-only两种方式,具体的四种方式的联系区别可以参考VBox自带的User Manual。

 

一、主机与虚拟机通信(单向,虚拟机guest到主机host,可以上外网)
一般情况下,当你安装了VBox并装上guest os(debian6.0.7)后,guest os就是NAT直接可以上外网的,并且是通过dhcp获取ip地址的。参考地址中说的很详细,user manual中也有说明。
这里我们可以改成静态ip地址。打开Guest A
设置如下:

vi /etc/network/interfaces

编辑为:

 1 # The loopback network interface
 2 auto lo
 3 iface lo inet loopback
 4 # The primary network interface
 5 auto eth0
 6 #allow-hotplug eth0
 7 iface eth0 inet static
 8 address 10.0.2.10
 9 netmask 255.255.255.0
10 gateway 10.0.2.2

同样可以设置Guest B,只是address一行改为10.0.2.20(这里ip地址可以设为10.0.2.4-10.0.2.254之间,2.2为网关,2.3为dns)。
重启网络:

/etc/init.d/networking restart

这里如果直接使用原来的dhcp,发现guest的ip地址都是一样的(一般为10.0.2.15)。不过貌似也没关系,因为主机Host是无法访问虚拟机的。这时两台虚拟机之间也是无法ping通的(即使它们看起来在一个网段,这就与NAT的原理有关了)。一开始我以为能够ping通,才有了配置静态ip这么一段。配置完这一步可以保证虚拟机能够访问外网。
这时,

Guest A:eth0 10.0.2.10
Guest B: eth0 10.0.2.20

 

二、主机与虚拟机以及虚拟机之间互通信
关闭虚拟机(开机状态下无法设置),在设置->网络中,点击网卡2(网卡1被用作NAT),启用网络连接,选择Host-Only方式,在混杂模式中选择全部允许(不知道选择其他可不可以,没有试,当时直接选择的全部允许)。记得点击确定哈。
打开虚拟机,(A和B都要做)

vi /etc/network/interfaces

添加两行

1 auto eth1
2 iface eth1 inet dhcp

重启网络,

/etc/init.d/networking restart

这时A的地址会设置为192.168.56.101,B的地址会设置为192.168.56.102。
一开始我设置成静态地址,但发现上不了外网,不知是何原因。
这时,

Guest A:
eth0 10.0.2.10
eth1 192.168.56.101

Guest B: eth0 10.0.2.20 eth1 192.168.56.102

主机ping Guest A:ping 192.168.56.101 成功。
主机ping Guest B:ping 192.168.56.102 成功。

 

Guest A和B ping主机:ping ip(这个ip为主机正在上网的ip地址,通过NAT) 成功。或者 ping 192.168.56.1(通过HOST-ONLY)成功。

Guest A ping Guest B:ping 192.168.56.101 成功。