VNC 和 SSH:本地 (win-putty) -> 跳跃 (linux) -> 远程 (linux)

VNC 和 SSH:本地 (win-putty) -> 跳跃 (linux) -> 远程 (linux)

我在尝试访问远程 VLC 和 SSH 时感到头疼。情况是这样的:

Local:Win box 位于 NAT 后面,动态 IP。我想从这里连接。

Hop:Linux盒子,静态IP服务器

Remote:Linux 盒子位于 NAT 后面,动态 IP。我想在这里连接

由于remote具有动态 IP 并且位于 NAT 之后,我将 ssh 反向隧道设置为hop

ssh -R 55900:localhost:5900 -R 50022:localhost:22 user@hop

这一步似乎有效。从hop,我可以通过 sshremote连接到本地主机端口 50022 :

ssh -p 50022 user@localhost

然后,我使用 putty 从本地建立到该跃点的 ssh 隧道: 建造隧道

一旦在 上建立第二条隧道local,当我尝试访问remoteSSH 或 VNC 时,连接将直接关闭。对于 SSH(通过 putty 的另一个实例),我收到错误“服务器意外关闭了连接” 对于 VNC(TightVNC 查看器):“连接已正常关闭”

在网上寻找解决方案后,我尝试更改一些putty选项,例如“启用X11转发”或“允许代理转发”,但没有成功。

知道如何解决这个问题吗?

谢谢

答案1

好吧...首先我将回答一个不同的问题:既然您可以从 LOCAL 在 HOP 上访问所需的端口,为什么不让 TightVNC Viewer 直接连接到 HOP:PORT?从连接的角度来看,您不需要这样做。

其次(回答你原来的问题),如果你想确保你以整个方式加密会话(完全合理),那么我明白你为什么要使用从本地到跳的原因。首先,在 HOP 上,请运行netstat -an | grep 55900并记下服务器正在侦听的 IP 地址...如果是 127.0.0.1 或 localhost,则需要确保将 LOCALHOST 作为隧道规范的“远程”部分油灰。如果是其他 IP 地址,请使用该地址。如果是 * 或 0.0.0.0,则只需使用 localhost。

编辑:我刚刚注意到您在远程的 -R 隧道规范中使用了“localhost”。如果您没有在 putty 配置中使用 localhost,那么这几乎肯定是问题的根源。

接下来,在 REMOTE 上,请运行netstat -an | grep 590(不是拼写错误,实际上是 590)以确保您的 VNC 软件按预期在 5900 上侦听……有时它在 5901 上,因此将其作为可能的问题源删除很重要。

如果这不能解决您的问题,请告诉我......

相关内容