如何使用SSH隧道访问受限制的服务器
SSH隧道或SSH端口转发是一种在客户端和服务器机器之间创建加密SSH连接的方法,通过该连接可以中继服务端口。
带有端口转发的本地SSH隧道
当您想要访问无法直接访问的资源,但您可以访问的ssh服务器可以访问时,您可以使用本地ssh隧道。以下是一些场景。
代理到远程服务器
在上图中,蓝色主机无法够到
http://192.168.0.3
但是可以ssh到192.168.0.2。在上执行的以下ssh命令
蓝色主机
将允许蓝色主机到达红色主机。
ssh
L
8080
:192.168.0.3
:80
还原器
@192
.168.0.2
代码语言:
CSS
(
css
)
现在蓝色主机可以打开浏览器,转到
http://localhost:8080
,并显示192.168.0.3上托管的网页。
本地端口转发
在上图中,蓝色主机希望连接到端口80上的红色主机,但两者之间有一个防火墙拒绝连接。因为蓝色主机可以ssh到红色主机,所以我们可以创建一个本地端口转发ssh隧道来访问该端口。
蓝色主机上的命令为:
ssh
L
8080
:192.168.0.2
:80
还原器
@192
.168.0.2
代码语言:
CSS
(
css
)
现在,当蓝色主机打开浏览器并转到
http://localhost:8080
他们将能够看到红色服务器在端口80处具有的任何内容。
本地端口转发语法
创建本地ssh端口转发隧道的语法如下:
ssh-L
<
LPORT
>
:
<
RHOST
>
:
<
rpot
>
<
网关
>
代码语言:
HTML,XML
(
xml
)
具有端口转发的远程SSH隧道
在这个场景中,我们将创建一个反向ssh隧道。在这里,我们可以在一个方向上启动ssh隧道,然后使用该隧道在另一个方向创建ssh隧道。当你把无人机电脑放在网络中并想让它“打电话回家”时,这可能很有用。然后,当它打电话回家时,您可以通过已建立的ssh隧道连接到它。
我们在绿色主机上,希望ssh到蓝色主机。但是,防火墙会直接阻止此连接。因为蓝色主机可以ssh到绿色主机,所以我们可以使用它进行连接,当绿色主机想要ssh回到蓝色主机时,它可以沿着这个以前建立的隧道运行。
蓝色主机启动ssh隧道,如下所示:
ssh
R
2222
:localhost
:22
绿用户
@192
.168.0.2
代码语言:
CSS
(
css
)
这打开了绿色主机上的端口2222,然后该端口将其转发到蓝色主机上的港口22。因此,如果绿色主机在端口2222上对自己进行ssh,那么它就会到达蓝色主机。
绿色主机现在可以ssh到蓝色主机,如下所示:
ssh
2222
blueuser
@localhost
代码语言:
CSS
(
css
)
使用-N选项
使用ssh时,可以指定
N
标志,该标志告诉ssh在建立ssh连接时不需要通过该连接发送任何命令。在制作隧道时经常使用此选项,因为我们通常不需要实际得到提示。
AutoSSH
这个
自动清除
命令用于为隧道添加持久性。它的任务是验证ssh连接是否已启动,如果没有,则创建它。
这是一个您可能会识别的自动刷新命令。
autosh-N-i/home/blueuser/.ssh/id_rsa-R 2222:localhost:22[电子邮件保护]
的
-i/home/blueuser/.ssh/id_rsa
选项表示使用证书来验证这个ssh连接。
现在,当你的隧道关闭时,它会自动尝试重新连接,并不断尝试,直到成功。要使其在重新启动时持久化,请将ssh命令添加为cron作业。
延伸阅读:
Windows 记事本终于获得自动更正和拼写检查功能
在首次引入 Windows 大约 41 年后,记事本终于更新了自动更正和拼写检查功能。这家科技巨头于今年 3 月推出了拼...
Ubuntu 的 apt 和 apt-get 命令有什么区别?
在Ubuntu及其他基于Debian的Linux发行版中,软件包管理是系统维护的一个重要方面。apt和apt-get是两...
Ubuntu远程桌面:如何设置和连接
远程桌面是一种允许您远程接管和使用另一台计算机的服务。在Ubuntu中,可以在图形客户端机器上启用它来控制主机。此功能对...
苹果公司在“放开”iPad活动上宣布的4款产品(以及你错过了什么)
利用当天的视频 苹果2024年5月的“放开”活动标志着iPad系列的一个重要里程碑,该公司推出了自成立以来最重大的升级。...
将照片从iPhone传输到iPhone的8种快速方法
已升级到新iPhone,是否要从旧设备中移动所有照片?或者你只是想从别人的iPhone上转移照片?以下是在两部iPhon...