我在本地 PC 上通过 NAT 运行了一个 ubuntu 虚拟机。我可以使用 putty 通过 ssh 进入我的虚拟机(由于某些特殊原因,我需要使用 putty 连接本地运行的虚拟机)。
但是当我拨入公司 VPN 时,putty 不起作用,一段时间后,它会报告超时错误。VM 仍在运行,我甚至无法 ping 通 VM。
为什么它不工作??
答案1
关闭虚拟机,将网络更改为桥接模式,然后重新启动。
在 NAT 模式下,VM 会在与您本地 PC IP 地址进行网络映射的虚拟网络上创建。
连接到 VPN 后,您会获得一个新地址,而您的虚拟机无法与其通信。同时,VPN 客户端会收到已知网络和默认路由的列表。已知网络不包括您的虚拟机所挂载的虚拟网络,因此路由会消失。
通过将虚拟机中的 NIC 置于桥接模式,它将在本地 PC 的网络上获取一个 IP 地址,并且此本地 IP 地址不会通过 VPN 拉取,因此可以作为“本地”子网的一部分进行访问。
例如..家庭路由器:192.168.1.1 ..您的电脑 192.168.1.100 ..您的虚拟机现在是 192.168.100.101 ...但转到桥接模式..您可能会得到:192.168.1.1(您的路由器)192.168.1.100 作为您的本地电脑,而虚拟机可能会得到 192.168.1.101(注意第 3 个八位字节!!)
为了轻松查看路线,打开命令提示符,然后前连接后,执行“ netstat -rn ”
然后连接到您的 VPN 并再执行一次“netstat -rn”,这将向您显示路由表中的差异,如果您仔细观察,应该会看到 David Woodward 和我所说的内容。
答案2
您的 VPN 可能设置为全隧道而不是分割隧道。在全隧道中,不允许使用任何其他网络连接(包括使用您的计算机和虚拟机之间的虚拟 NIC 的连接)。
不幸的是,这可能超出了你的控制范围,因为这通常是一项政策,旨在防止其他网络上的不良内容进入公司网络。你使用的是什么 VPN 软件?
答案3
正如 David 在他的回答中提到的,可能我的 vpn 是全隧道的,这就是为什么我的主机无法通过 ip 地址 ssh 到我的客户机。因为它们在不同的网络中。
但我找到了一种方法,可以继续使用我的主机进行 Web 浏览,同时通过 ssh 进入我的客户机。我现在在 Windows 主机上使用 vmware player,因此解决方案是进行端口转发并使用 NAT 网络适配器运行 vm。
- 编辑下面的 vmnetnat.conf 文件
C:\ProgramData\VMware
,
在该[incomingtcp]
部分下,维护您想要转发的端口,我添加了这一行:
9922 = 192.168.20.130:22
因此它会将来自端口 9922 的任何内容转发到我的主机端口 22。
现在,在 Putty 中,我将地址维护为127.0.0.1 9922
,然后连接将转发给我的客人。