我想将 virtualbox 计算机连接到远程计算机上的本地服务。我可以连接到本地服务,但是远程服务有问题,因为在目的地,服务在本地 LAN 中运行。
这是第三台计算机和第三台计算机上的两个接口的图形。我想连接到 10.0.0.8:200,因为我想连接的服务只在远程计算机上的本地网络上运行。
+--------------------+
| |
| VirtualBox |
| 192.168.11.11:200 |
| |
+-----+--------------+
|
v
+--------------------+
| |
| Local Computer |
| 192.168.11.41:200 |
| |
+-----+--------------+
|
v
+--------------------+
| |
| Remote Computer |
| 8.8.8.8 | <- I can connect here
| |
| 10.0.0.8:200 | <- how do I connect here?
| |
+--------------------+
我可以在本地计算机和远程计算机之间打开一条隧道,但这并不能让我连接到本地网络 10.0.0.8 上的服务。
到目前为止,我所拥有的是本地计算机和远程计算机之间的 SSH 隧道。否则,我可以在 VirtualBox 和本地计算机之间进行连接(我有一个桥接网络设置,可以按预期工作。)
ssh -L 200:8.8.8.8:200 example.com
所以我缺少的是 8.8.8.8 和 10.0.0.8 之间的连接。如何在两者之间创建一个隧道/代理,使我的本地计算机可以使用 10.0.0.8:200 上的服务?
首先,您的命令中有一个明显的错误。您的程序仅在本地网络上运行,但您使用 .将连接转发到公共 IP
-L 200:8.8.8.8:200
。所以你应该-L 200:10.0.0.8:200
改用。其次,通过使用
-L 200:10.0.0.8:299
,ssh 客户端默认只会监听localhost:200
。可以使用该GatewayPorts
选项配置此行为。要明确告诉 ssh 客户端接受来自其他主机的连接,您可以使用-L 0.0.0.0:10.0.0.8:200
. 来自man ssh_config
: