如何使用SSH端口转发
SSH端口转发通过将本地系统上的特定端口转发到远程系统上的端口的流量。
两个端口不必是相同的。
例如,我们将在远程系统上将端口4500转发到端口23(Telnet)。
您不必以根用户的身份执行此操作。
由于我们使用的端口高于1024,普通用户可以创建此端口转发连接。请记住,只有在SSH连接运行时,才会建立隧道。
$ ssh -L 4500:127.0.0.1:23 user@onitroad.com
命令说明:
-L
- 此选项告诉SSH我们希望通过端口转发创建隧道。4500
- 我们当地系统上的端口,我们将通过它发送流量。127.0.0.1
- 这是我们当地系统的环回地址。23
- 我们正在尝试连接的远程端口。user
- 要在远程服务器上登录SSH的用户名。onitroad.com
- 远程服务器IP或者域名。
此时,将在localhost上使用端口4500的每个连接重定向到远程端口23.
它看起来像一个典型的SSH登录。
但现在,在我们的本地系统上,我们可以通过通过端口4500路由流量来访问远程系统的Telnet服务。
$ telnet 127.0.0.1 4500
我们可以打开一个新的终端,执行上面的命令进行测试,同时保持另一个终端打开,以便它维护我们的SSH隧道。
正如您所看到的,我们现在已经向远程服务器打开了一个telnet会话,但它是一个安全连接,因为它是通过我们在另一个终端中建立的现有SSH隧道发送的。
您可以对任何类型的流量使用SSH隧道。需要记住的是,您应该将应用程序指向本地主机地址(127.0.0.1)和为SSH隧道配置的端口号。
如何创建持久性SSH隧道
您可能已经注意到,对于长期SSH隧道,依赖于我们打开的SSH连接是相当不方便的。如果存在一些临时延迟,或者SSH终端只是达到其超时,则隧道将与SSH会话一起关闭。
如果您想创建一个隧道,当隧道发生故障时自动将其恢复,则可以在系统的软件包管理器中安装“AutoSh”实用程序。您需要为无密码SSH配置RSA密钥才能使此方法正常工作。
构建持久性隧道的语法基本上与普通SSH方法相同。
$ autossh -L 4500:127.0.0.1:23 user@onitroad.com
日期:2020-07-07 20:56:17 来源:oir作者:oir