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