Muh*_*ana 17 ssh ssh-tunneling
我有 linux (Ubuntu) 服务器,我只能通过 ssh(端口 22)访问它。在该服务器上有一个 MySQL 数据库侦听端口 3306。是否可以使用腻子(在我的机器上)和隧道(在 linux 机器上)从我机器上的本地端口(比如 4000)创建一个隧道,到linux 服务器在端口 22 上,然后在端口 3306 上从服务器到它自己?
eri*_*rik 23
键入 ssh 隧道命令的机器(或在您的情况下:启动带隧道的腻子)称为»your host«。
当地的: -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
,并将所有连接尝试转发到机器上称为的本地 sourcePort
端口onPort
,该端口forwardToHost
可以从connectToHost
机器访问。
偏僻的: -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
,并将所有连接尝试转发到名为 的机器上的远程 sourcePort
端口onPort
,该端口forwardToHost
可以从您的本地机器访问。
第一张图片代表您的情况。蓝色框your host
是你的 Windows 机器,你从它启动 Putty 到你的 Ubuntu 服务器,remotehost
在我的图像中称为。连接到绿色港口(你的情况端口号4000
)转发到粉红色的MySQL端口3306
的localhost
你的Ubuntu服务器的机器(即Ubuntu的服务器本身)。
启动 Putty 并输入您常用的连接设置(主机名或 IP 地址) 在左侧的树中,导航到
联系 ?SSH ? 隧道
并使用源端口(图像中的 123)和目的地(图像中的 localhost:456 )创建一个新的本地隧道。4000
localhost:3306
不要忘记点击添加。
然后导航回会话并单击保存以保留您的设置以供下次使用。现在您可以使用保存的连接登录到您的服务器,成功登录后,每次连接到主机上的 4000 端口时,您实际上都会连接到 Ubuntu 服务器上的 3306 端口。
Gus*_*uss 16
简单的答案是肯定的,但请注意隧道实际上是在您的计算机上启动的。它的工作方式是您创建到服务器的 SSH 连接(这是安全的),然后指示 SSH 侦听您一侧的端口并将进入的任何连接转发 - 到特定主机地址上的特定端口服务器端。隧道的目标不必是同一台服务器——它可以是任何其他有效地址,如果它不是运行 SSH 服务器本身的服务器——它将看到传入的连接,好像它来自 SSH 服务器而不是来自您的客户。
要进行设置,请打开 Putty 配置对话框,选择您通常用于访问服务器的连接设置,然后单击“加载”(而不是“打开”)。然后在左侧的树中,导航到 Connection->SSH->Tunnels 并使用源端口 4000 和目标“localhost:3306”创建一个新的“本地”隧道(因为目标地址在服务器上解析,从服务器的角度来看,MySQL 端口在本地主机上)。然后导航回“会话”并单击“保存”以保留您的设置以供下次使用。现在您可以使用保存的连接登录到您的服务器,成功登录后,每次连接到计算机上的 4000 端口时,您实际上都会连接到服务器上的 3306 端口。
如果您认真对待隧道并运行 MS-Windows 客户端,那么我建议您查看Putty Tunnel Manager,它使用 Putty 轻松设置和运行隧道,而无需打开 Putty 控制台。
归档时间: |
|
查看次数: |
3605 次 |
最近记录: |