我有一台运行 Oracle VirtualBox 3.2.6 的 Ubuntu 10.04,带有 Windows XP 客户机。我使用 VPN,希望客户机 VM 可以访问它,在 ifconfig 上它显示如下:
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:5.192.10.99 P-t-P:5.192.10.99 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1362 Metric:1
RX packets:14151 errors:0 dropped:0 overruns:0 frame:0
TX packets:19860 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:4415271 (4.4 MB) TX bytes:17949982 (17.9 MB)
在虚拟机上使用 NAT 或 Bridge 适配器只会给我非 VPN 适配器。如何将 tun0 适配器映射到 VirtualBox?
答案1
你也许可以这么做,但我不建议这么做。
实现此目的的方法是让 VM 建立与目标服务器/网络的 VPN 连接。
现在,如果你真的想这样做,你需要在主机上创建另一个网桥,然后创建隧道接口作为静止的接口(即不是隧道 (VPN 启动时创建) 并将其添加到网桥。只有这样,此隧道才可供虚拟机使用。然后可以指示 VirtualBox 虚拟化此接口,从而使其可供 VM 使用。
我不确定的部分是是否可以在 VPN 客户端之外创建隧道,然后将其提供给客户端使用。您可能需要考虑使用 tap 设备而不是 tun 设备。
这可能会变得相当复杂,并且会导致您的 VM 客户端在 VPN 未启动时可能没有任何网络的情况(除非您还虚拟化了另一个网桥)。如前所述,我不建议这样做。
答案2
环境/etc/sysctl.conf
:
net.ipv4.ip_forward=1
然后运行:
sudo sysctl -p
(应该没有必要,但)之后我重新启动并发现它可以正常工作。