如何将主机Ubuntu上的VPN(tun0)networking适配器映射到VirtualBox来宾Windows?

我有一个运行Oracle VirtualBox 3.2.6的Ubuntu 10.04和Windows XP客户端。 我使用一个VPN,我想访问虚拟机,在一个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 PtP: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或网桥适配器只能给我非VPN适配器。 如何将tun0适配器映射到VirtualBox?

你可以做,但我会build议反对它。

要做到这一点的方法是让虚拟机build立自己的VPN连接到目标服务器/networking。

现在,如果你真的想这样做,你需要在主机上创build另一个网桥,然后创build一个静态接口(即不是在VPN启动时创build的),并将其添加到网桥。 只有这样,这个通道才能被虚拟机使用。 然后可以指示VirtualBox虚拟化该接口,从而使虚拟机可以使用该接口。
我不确定的一部分是隧道是否可以在VPN客户端之外创build,然后提供给客户端使用。 您可能必须考虑点击设备而不是tun设备。
这可能会变得相当复杂,并会导致您的VM客户端可能没有任何networking,如果VPN不起来的情况下(除非你也虚拟其他桥梁)。 如上所述,我会推荐它。

设置/etc/sysctl.conf

 net.ipv4.ip_forward=1 

然后运行:

 sudo sysctl -p 

(不应该是必要的,但是)我重新启动后,发现它的工作。