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