当我的 Mac 使用 VPN 时,如何通过 ssh 进入我的 Ubuntu VM?

当我的 Mac 使用 VPN 时,如何通过 ssh 进入我的 Ubuntu VM?

当我没有使用雇主的 VPN 时,我可以通过 ssh 进入我的 Ubuntu VM(在 VMware Fusion 中运行)。(当 VM 的网络连接为 NAT 和桥接时,它都可以工作。)但是当我连接到 VPN 时,我无法再通过 ssh 进入我的 VM:

$ ssh 172.16.193.128
ssh: connect to host 172.16.193.128 port 22: Operation timed out

我尝试过 NAT 和桥接网络连接,但遇到了同样的问题。我甚至尝试过在连接到 VPN 后从桥接切换到 NAT。

连接到 VPN 时,我可以从 VM ping 我的 Mac。

是什么原因导致了这个问题?有什么建议可以解决它吗?有解决方法吗?

(请注意,我希望能够通过 ssh 进入 VM,这样我就可以使用 MacFUSE 挂载其文件系统,并使用我的 Mac OS X 编辑器编辑文件等。)

答案1

我怀疑,当您连接到 VPN 时,它会更改计算机上的路由表,并将该路由重定向到 VPN。我相信netstat -r在连接和断开 VPN 的情况下运行并比较结果,是测试此问题的方法。

我假设您在连接时无法从 Mac ping 通 VM,但断开连接时可以。

我相信你可以通过使用反向 SSH 隧道来解决这个问题。(这里是如何做到这一点的一个解释——请注意,我实际上还没有尝试过。)

另外,虚拟机还有其他方式可以访问它吗?您可以使用 mDNS(Bonjour)进行连接吗,例如使用 hostname.local,其中 hostname 是虚拟机的主机名?

答案2

您也可以选择不使用 VPN 隧道上的默认路由。这样,除 VPN 网络流量之外的所有流量都将正常发送。但是,在我的办公室,我们有多个 VPN 接入所需的网络。每次创建 VPN 隧道后,我都必须添加特定路由。

假设: 10.0.0.100 为 Mac 的 VPN 分配地址 10.0.0.0,子网为 255.255.255.0,为主要工作网络 10.0.100.0,子网为 255.255.255.0,为第二个工作网络

在 Windows 下:route add 10.0.100.0 mask 255.255.255.0 10.0.0.100 在 Linux 下:route add -net 10.0.100.0 netmask 255.255.255.0 gw 1​​0.0.0.100

相关内容