我已经使用 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 个网络接口:eth0
和eth1
。
注意:
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 地址)。