将流量从本地网络路由到 VirtualBox 仅主机适配器

kkx*_*kkx 9 networking virtualbox macos

对于测试,我需要允许从本地网络路由到 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
Run Code Online (Sandbox Code Playgroud)

网络就是这样。

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
Run Code Online (Sandbox Code Playgroud)

除非 VirtualBox 故意从外部丢弃数据包,否则这应该可以工作。

我的目标是192.168.0.104连接到192.168.59.103. 到目前为止,我只能192.168.59.3从它ping通。

此外,我的客人已经有另一个带有默认网关的适配器,允许访问 wifi。

我可能缺少什么路由或网络配置?

此外,我可以理解收到我的客人的数据包,但客人无法回复,但是如果说我 ping 机器,tcpdump 显示没有 paquet 到达客人。也没有防火墙在任何地方运行。

我的 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
Run Code Online (Sandbox Code Playgroud)

小智 1

仅主机网络模式不能用于将流量从本地网络路由到 VM 主机。您应该使用桥接、NAT 或 NAT 网络。对于后两个,您需要一个端口转发。

参考:

[1] https://www.virtualbox.org/manual/ch06.html#networkingmodes(参见第 6.2 节末尾的表格) [2] https://www.virtualbox.org/manual/ch06.html#仅网络主机