从桥接网络连接到 NAT 虚拟盒客户机

从桥接网络连接到 NAT 虚拟盒客户机

我已经使用 Vagrant 设置了 Virtualbox Ubuntu 12.04 服务器。我可以通过 ssh 连接到它,甚至可以从它 ping 我的桌面。但是从我的桌面 ping 客户操作系统却不行。

我已尝试清除 iptables 并禁用防火墙(ufw disable)。

客户操作系统配置为 NAT(10.0.2.15)。我的桌面配置为桥接(192.168.0.23)。

我还尝试将客户操作系统配置为具有桥接网络。但是我无法启动 Django 开发服务器。收到无法使用该 IP 的错误。

我在这里遗漏了什么?

vagrant@precise32:~ifconfig -a     
eth0      Link encap:Ethernet  HWaddr 08:00:27:12:96:98  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe12:9698/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:193157 errors:0 dropped:0 overruns:0 frame:0
          TX packets:102002 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:170818571 (170.8 MB)  TX bytes:8109666 (8.1 MB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:a1:d9:5f  
          inet6 addr: fe80::a00:27ff:fea1:d95f/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:795 errors:0 dropped:0 overruns:0 frame:0
          TX packets:115 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:60352 (60.3 KB)  TX bytes:30546 (30.5 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1226 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1226 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:361973 (361.9 KB)  TX bytes:361973 (361.9 KB)


vagrant@precise32:~$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp
#VAGRANT-BEGIN
# The contents below are automatically generated by Vagrant. Do not modify.
auto eth1
iface eth1 inet dhcp
    post-up route del default dev $IFACE
#VAGRANT-END

答案1

看起来 vagrant box 有 2 个网络接口:eth0eth1

注意:eth1有一个删除默认路由的后续操作,这意味着它无法到达外界。您可能设置了仅限私人的网络。

您可以通过 SSH 连接到它,因为它是通过 NAT 端口转发,换句话说,您正在连接到 127.0.0.1 端口 2222(映射到客户机 22)。

理论上,为了能够 ping通网络10.0.2.15/24中的客户机10.0.2.0/24,主机必须具有到网络的路由。

在您的案例中,这是隐藏在虚拟 NAT 路由器后面的 VirtualBox VM,而您所看到的(主机无法 ping 虚拟机)就是 NAT 的工作方式。除非配置了(TCP/UDP)的端口转发规则,否则主机将无法访问 NAT 后面的主机。不幸的是,ping 以 ICMP 为依据,没办法。我不确定您是否能找到一条不会破坏现有网络的路由。

总而言之,您需要从主机 ping 客户虚拟机,切换到桥接网络或启用辅助网络适配器作为桥接,以便可以从主机访问它(因为虚拟机在同一个子网中有一个 IP 地址)。

相关内容