一旦启用 VPN,与 VirtualBox 机器的连接就会断开

一旦启用 VPN,与 VirtualBox 机器的连接就会断开

我的 Mac 上运行着一台 VirtualBox 机器,我可以毫无问题地连接到它,例如使用 SSH:

$ ssh [email protected]
user-centos-6:~ user $

但是,当我从 Mac 连接到 VPN 时,SSH 连接就会关闭,并且我无法再访问 VM:

$ ssh [email protected]
ssh: connect to host 192.168.12.101 port 22: Permission denied
$ ping 192.168.12.101
PING 192.168.12.101 (192.168.12.101): 56 data bytes
ping: sendto: Permission denied
ping: sendto: Permission denied
Request timeout for icmp_seq 0

鉴于我是网络新手,我该如何调试这种情况?

更新 1:

netstat -nr启用 VPN 之前的输出:

default            192.168.1.1        UGSc          273        0     en0
...
192.168.1.1        XXX                UHLWIir       274     3247     en0   1197
192.168.1.255      ff:ff:ff:ff:ff:ff  UHLWbI          0       18     en0
192.168.12         link#7             UC              2        0 vboxnet
192.168.12.101     YYY                UHLWIi          0     2116 vboxnet   1054
192.168.12.255     ff:ff:ff:ff:ff:ff  UHLWbI          0       18 vboxnet

启用VPN后,以上内容基本相同。

VM 有两个网络适配器:

  • NAT
  • 仅主机适配器(vboxnet0)

答案1

您的 VPN 可能正在更改您的网络路由和/或默认网关。当您连接/断开 VPN 时,请检查输出netstat -nr并查找默认路由。您可以通过在虚拟机和主机之间使用专用网络来解决这个问题。如果虚拟机使用桥接适配器,则更改网络配置可能会阻止访问。

答案2

最有可能发生的情况是,您的 VPN 使用所有 RFC-1918 地址并将它们映射到您的 VPN 网络。

这意味着,即使您仍分配了 IP 地址,所有网络现在都静态路由到另一端的网络。

到目前为止,我发现唯一可以预测且稳定的解决方案是让您的本地 DHCP 服务器为不在您的 VPN 网络中的 VM 分配地址(我使用223.x.x.x,因为该范围已交给 ARIN 分配,而且我怀疑我是否会尝试访问该范围内的站点;如果我这样做,我只会管理它),以便您的 VPN 和您的 VM 之间的 NAT 仍然处于活动状态。

大多数 VM 管理程序将允许您为 VM 分配其他地址范围,因此您应该能够弄清楚如何执行此操作。

相关内容