SSH隧道使用腻子多跳

我有一种情况,我想连接到一台运行VNC的Linux机器(让我们称之为VNCServer),它连在两台连续的Linux机器后面,即ssh到VNCServer,我必须从我的笔记本电脑ssh进入Gateway1,然后从Gateway1 shell我进入了Gateway2,然后从那个shell我终于SSH入VNCServer。 我无法改变networkingdevise和访问stream程笔记本电脑 – >网关1 – >网关2 – >服务器。 我在Gateway1上没有root权限,除了22和5901之外的所有端口都closures。

有没有办法在笔记本电脑上启动VNC查看器并访问VNCServer? 我明白,这可能是使用SSH隧道function,我有我的Windows笔记本电脑上的腻子(抱歉,没有Linux或Cygwin等可以安装在工作笔记本电脑上)。 任何帮助将不胜感激,因为这将使我的生活更容易!

Putty支持ssh隧道,如果你展开Connection,SSH树,你会看到一个隧道条目。

本地隧道产生一个本地主机端口在您的Windows机器上打开,远程您指定的IP地址和端口。 例如,当我试图将RDP发送到我家的桌面时,我通常会select一个随机的本地端口,如7789,然后将桌面的本地IP地址(1.2.3.4:3389)作为远程主办。 一定要点击“添加”,然后点击“应用”。 此时,当您将rdp设置为127.0.0.1:7789时,您将通过腻子会话连接到1.2.3.4:3389。

这就是好玩的地方。如果你在你的中间盒子上设置了一个端口通道,把你指定的远程端口的本地端口设置成腻子,那么你可以通过你的腻子popup,通过中间盒子到达最终目的地。 你仍然需要做一些ssh连接,但是一旦你设置好了,你就可以直接从windows系统中跨越vnc或者rdp,这是我相信你打算做的。

  1. 转到Putty中的隧道面板(连接 – > SSH->如果ssh会话已经处于活动状态,则在上下文菜单中访问隧道,或者在刚刚启动putty的初始连接屏幕中访问隧道)
  2. 使用本地源15900和远程源127.0.0.1:15900创build隧道
  3. 连接(如果尚未连接)到网关1。
  4. 在Gateway1上,ssh -L 127.0.0.1:15900:VNCServerIP:5900 user @ Gateway2
  5. 一旦ssh到Gateway2启动,尝试vnc到127.0.0.1:15900 – 你现在应该看到远端的VNC屏幕!

增加奖金 – 没有多less人知道这一点,但是这个过程也可以用来代理IPv6 / IPv4stream量。 SSH并不关心隧道使用什么协议,因此,理论上只要从IPv4系统访问IPv6主机,假设ssh服务器是双栈(同时具有IPv4和IPv6地址)。

如果你想使用两个跳跃PuTTY还有一个替代。 在这个例子中,我们从网关#1(10.0.1.123)跳转到网关#2(10.0.1.456)到10.0.1.789上的80端口。

  1. 首先创build跳转到网关#1。 首先build立到第一台服务器的连接。 在连接> SSH>隧道中设置隧道到第二个网关。 在这个例子中,我们将端口2222转发到第二个网关。

    连接到servert

    建立隧道

  2. 现在我们将设置第二跳。 我们将通过第一个网关隧道到下一个网关,并在第二个网关上设置端口转发。 连接到端口2222上的本地主机。这将通过正在运行的SSH连接隧道到第二跳。 在这个连接上,我们将端口3333设置为10.0.1.789。

    在这里输入图像描述

    在这里输入图像描述

  3. 现在打开一个浏览器并导航到127.0.0.1:3333,你将隧道通过两个SSH连接到10.0.1.789:80