如何将主机 Ubuntu 上的 VPN(tun0)网络适配器映射到 VirtualBox 客户机 Windows?

如何将主机 Ubuntu 上的 VPN(tun0)网络适配器映射到 VirtualBox 客户机 Windows?

我有一台运行 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

(应该没有必要,但)之后我重新启动并发现它可以正常工作。

相关内容