为了进行测试,我需要允许从本地网络路由到 VirtualBox 中的客户机。客户机已经具有外部访问权限。
到目前为止,我已在本地机器(OSX 10.9)上启用了 IP 转发,并在本地网络上的机器上添加了到主机专用网络的路由。
route add -net 192.168.59.0 netmask 255.255.255.0 gw 192.168.0.107
sysctl -w net.ipv4.ip_forward=1
网络看起来就是这样。
Local network 192.168.0.104 -> [Wireless 192.168.0.0/24] -> MacOSX 192.168.0.107 (Wifi) & 192.168.59.3 (VboxHost) -> [VBox 192.168.59/24] -> 192.168.59.103
除非 VirtualBox 故意从外部丢弃数据包,否则这应该可以工作。
我的目标是192.168.0.104
连接到192.168.59.103
。到目前为止,我只能192.168.59.3
从它 ping 。
此外,我的客人已经有另一个带有默认网关的适配器,可以访问 wifi。
我可能缺少什么路线或网络配置?
我也理解数据包到达我的客户机,但客户机无法回复,但是如果我 ping 机器,tcpdump 显示没有数据包到达客户机。而且任何地方都没有运行防火墙。
我的 Mac 上的路由表
Destination Gateway Flags Refs Use Netif Expire
default 192.168.0.1 UGSc 42 1 en0
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 6 2943735 lo0
169.254 link#4 UCS 0 0 en0
192.168.0 link#4 UCS 3 0 en0
192.168.0.1 9c:d6:43:c8:cf:e8 UHLWIir 43 21647 en0 1199
192.168.0.104 8:0:27:c2:fc:68 UHLWI 0 7 en0 1068
192.168.0.106 0:15:99:77:73:ed UHLWI 0 82 en0 845
192.168.0.107 127.0.0.1 UHS 2 9114 lo0
192.168.59 link#9 UC 3 0 vboxnet
192.168.59.3 a:0:27:0:0:0 UHLWI 0 69759 lo0
192.168.59.103 link#9 UHRLWIi 2 31866 vboxnet 1
答案1
仅主机网络模式不能用于将流量从本地网络路由到 VM 主机。您应该使用桥接、NAT 或 NAT 网络。对于后两种情况,您需要端口转发。
参考:
[1]https://www.virtualbox.org/manual/ch06.html#networkingmodes(见第 6.2 节末尾的表格)[2]https://www.virtualbox.org/manual/ch06.html#network_hostonly