了解SSH隧道


15

我有linux(Ubuntu)服务器,我只能通过ssh(端口22)访问root。在该服务器上,有一个MySQL数据库在端口3306上进行侦听。是否可以使用腻子(在我的计算机上)和隧道(在Linux机器上)在从我的计算机上的本地端口(例如4000)到隧道之间建立一条隧道。 Linux服务器在端口22上,然后从服务器到自身在端口3306上?

Answers:


20

我画了一些草图

键入ssh tunnel命令的计算机(或者在您的情况下:启动具有隧道功能的腻子)称为“您的主机”

从本地开始的ssh隧道


从远程开始的ssh隧道

介绍

  1. 本地: -L Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.

    ssh -L sourcePort:forwardToHost:onPort connectToHost意思是:用ssh连接到connectToHost,并将所有连接尝试转发到本地 sourcePortonPort机器上称为的端口forwardToHost,可以从connectToHost机器上访问该端口。

  2. 远程: -R Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.

    ssh -R sourcePort:forwardToHost:onPort connectToHost意思是:用ssh连接到connectToHost,并将所有连接尝试转发到远程 sourcePortonPort机器上的端口forwardToHost,可以从本地计算机。

你的例子

第一张图片代表您的情况。名为蓝色的框your host是您的Windows计算机,从其中您将Putty启动到您的Ubuntu服务器,remotehost在我的映像中称为。连接到绿色港口(你的情况端口号4000)转发到粉红色的MySQL端口3306localhost你的Ubuntu服务器的机器(即Ubuntu的服务器本身)。

用腻子进行设置

启动Putty并输入常用的连接设置(主机名或IP地址),在左侧的树中,导航至

连接→SSH→隧道

并使用源端口创建一个新的本地隧道4000(图像中为123)和目的地localhost:3306(图像中为localhost:456 )。

别忘了点击添加

然后导航回会话并单击“ 保存”以保留下一次设置。现在,您可以使用保存的连接登录到服务器,成功登录后,每次连接到主机上的端口4000时,实际上都将连接到Ubuntu服务器上的端口3306。

用腻子创建前向隧道


很好,谢谢您的插图。我很高兴您添加了“远程”类型的隧道,但我没有回答。
2014年

1
这个答案很棒
Mauricio Pasquier Juan

2
令人敬畏且非常具说明性的答案+1
rkachach'2

1
这么少的选票真是可耻。
瑞安·费舍尔

1
我喜欢这个草图。图片值一千个字。
qartal

16

简单的答案是肯定的,但是请注意,该隧道实际上是在您的计算机上启动的。它的工作方式是,创建到服务器的SSH连接(这是安全的),然后指示SSH侦听您端的端口并转发任何传入的连接-到服务器上特定主机地址上的特定端口。服务器端。隧道的目标不必是同一台服务器-可以是任何其他有效地址,在不是运行SSH服务器本身的服务器的情况下-它将看到传入的连接,就像它来自SSH服务器一样,而不是来自您的客户。

要进行设置,请打开“ Putty配置”对话框,选择通常用于访问服务器的连接设置,然后单击“加载”(而不是“打开”)。然后在左侧的树中,导航到Connection-> SSH-> Tunnels并使用源端口4000和目标“ localhost:3306”创建一个新的“本地”隧道(因为目标地址是在服务器上解析的,从服务器的角度来看,MySQL端口位于本地主机上。然后导航回“会话”并单击“保存”以保留下一次设置。现在,您可以使用保存的连接登录服务器,成功登录后,每次连接到计算机上的端口4000时,实际上都将连接到服务器上的端口3306。

如果您认真地研究隧道并运行MS-Windows客户端,那么建议您查看使用Putty 隧道管理器的情况,该管理器使用Putty轻松设置和运行隧道,而无需使用开放的Putty控制台。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.