通过两个ssh跃点调整VNC

dar*_*aud 4 ssh firewall portforwarding tunneling

长期以来,我一直在寻找一种解决方案,以隧道连接到防火墙后的计算机,使VNC(或其他端口)通过。就像在这个旧的usenet帖子中所解释的那样,我将在这里进行回顾:

我必须通过中间机器登录,例如:

local $ ssh interim
interim $ ssh remote
remote $ ...any commands...
Run Code Online (Sandbox Code Playgroud)

这很好。但是现在我试图通过一个远程步骤将vnc会话从远程隧道传输到本地,但我找不到魔咒。

dar*_*aud 8

最近,我找到了一个非常简单且适应性强的解决方案:只需通过与防火墙的连接将ssh隧道传输到目标系统即可。像这样:

local $ ssh -L 2222:remote:22 interim
interim $ ...no need to do anything here...
Run Code Online (Sandbox Code Playgroud)

在另一个本地控制台中,您通过端口2222连接到本地主机,该端口实际上是您的远程目标:

local $ ssh -C -p 2222 -L 5900:localhost:5900 localhost
remote $ ...possibly start you VNC server here...
Run Code Online (Sandbox Code Playgroud)

在另一个本地控制台中:

local $ xtightvncviewer :0
Run Code Online (Sandbox Code Playgroud)

就这么简单。您可以将所需的任何端口转发添加到第二个命令(-L localport:localhost:remoteport),就像没有任何中间防火墙一样。以RDP为例:-L 3389:localhost:3389