如何在两个虚拟机主机之间进行通信

时间:2016-04-06 06:37:41

标签: virtualbox

主持人:Windows 8.1

guest1(server1正在运行):ubuntu 14.04

guest2(运行server2):ubuntu 14.04

我做了什么

我在guest1中转发端口8558来处理来自主机的句柄请求。它工作正常。现在我想要从guest1请求到在端口5672上运行的guest2服务器。因为我在guest2中有前向5672端口。

问题

当我连接到guest2时,它失败了。 我无法在guest2中收到请求。

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我正在使用两个Debian VM,我可以从另一个访问一个VM,反之亦然。使用Ubuntu VM应该没有任何区别。这是我的设置:

VirtualBox :5.0.24 r108355

主机:OS X 10.11.5

VM1 :Debian Jessie

VM2 :Debian Stretch

在主持人

1)创建一个NatNetwork:

VirtualBox -> Preferences -> Network -> NAT Networks -> Add new NAT Network

2)创建仅限主机的网络:

VirtualBox -> Preferences -> Network -> Host-only Networks -> Add host-only network

3)在每个guest虚拟机上,添加一个Nat网络和一个仅限主机的适配器,该适配器连接到您在主机上创建的同一接口。选择半虚拟化网络(virtio-net)作为适配器类型。

在VM1(Debian Jessie)

4)像这样修改/etc/network/interfaces

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet dhcp

allow-hotplug eth1
iface eth1 inet dhcp

在VM2(Debian Stretch)

5)像这样修改/etc/network/interfaces

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

allow-hotplug enp0s3
iface enp0s3 inet dhcp

allow-hotplug enp0s8
iface enp0s8 inet dhcp

请注意,在Debian中,网络interace命名方案已经改变。接口名为enp0s*,不再是eth*

在此之后,一切都应该可以运作。其余答案仅供参考。

每位客人将有两个IP地址,一个用于仅限主机的通信,另一个用于互联网访问。

在VM1(Debian Jessie)

eth0      Link encap:Ethernet  HWaddr 08:00:27:09:e8:02  
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe09:e802/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:330 errors:0 dropped:0 overruns:0 frame:0
          TX packets:168 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:52722 (51.4 KiB)  TX bytes:21827 (21.3 KiB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:8a:dc:96  
          inet addr:10.0.2.4  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe8a:dc96/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:462 errors:0 dropped:0 overruns:0 frame:0
          TX packets:421 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:61578 (60.1 KiB)  TX bytes:38012 (37.1 KiB)

在VM2(Debian Stretch)

enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::a00:27ff:fedc:d009  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:dc:d0:09  txqueuelen 1000  (Ethernet)
        RX packets 75  bytes 19672 (19.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 81  bytes 10902 (10.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.56.102  netmask 255.255.255.0  broadcast 192.168.56.255
        inet6 fe80::a00:27ff:fe4b:811e  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:4b:81:1e  txqueuelen 1000  (Ethernet)
        RX packets 329  bytes 39627 (38.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 231  bytes 30290 (29.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

VM1中的路由表

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.0.2.1        0.0.0.0         UG    0      0        0 eth1
10.0.2.0        *               255.255.255.0   U     0      0        0 eth1
link-local      *               255.255.0.0     U     1000   0        0 eth0
192.168.56.0    *               255.255.255.0   U     0      0        0 eth0

VM2中的相同原则。