从 VMWare Fusion 中的来宾虚拟机访问主机的 SSH 隧道

从 VMWare Fusion 中的来宾虚拟机访问主机的 SSH 隧道

我的 OS X 主机上运行着 VMWare Fusion,并且还运行着 Windows 8 Pro 客户虚拟机。在我的主机上,我在端口 1010 上打开了一个 SSH 隧道。一旦我将 SOCKS 代理设置为 localhost:1010,SSH 隧道便可在 OS X Safari 中很好地运行。

我想在我的 Windows 8 VM 上实现同样的功能,但 localhost:1010 无法用作 SOCKS 代理。我认为这是因为它是与我的主机的本地主机不同的本地主机。我的 Windows VM 当前正在使用 NAT 模式。有人知道我做错了什么吗?

答案1

默认情况下,SSH 客户端将监听 127.0.0.1(即 localhost),只能从该计算机访问。为了从另一台计算机(例如 VM)访问它,您需要告诉 SSH 客户端监听所有接口。修改端口转发以指定 0.0.0.0 作为网关:

ssh -D 0.0.0.0:1010 myserver.example.com

请注意,这也允许从本地网络上的任何机器进行访问。

然后,您需要配置 Fusion 以允许从虚拟机访问主机。这通常意味着使用桥接网络设置而不是 NAT。然后,虚拟机应该能够使用主机的 IP 地址访问 SOCKS 端口。

答案2

回答这个问题帮我解决了这个问题。将问题表述为 SSH 共享更有意义。此解决方案也适用于 NAT。具体来说:

ssh -D *:1010 [email protected]

然后,您只需要在与 VM 相同的子网中找到主机的 IP,并使用 Web 浏览器 SOCKS 代理设置中的 IP 和端口。

相关内容