SSH 端口转发

2017-10-09  本文已影响0人  geekdeedy

因为需要做一些特殊的实验接触到了ssh的端口转发。所谓SSH端口转发,就是它能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程有时也被叫做“隧道”(tunneling),这是因为 SSH 为其他 TCP 链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP,LDAP 这些 TCP 应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输。而与此同时,如果您工作环境中的防火墙限制了一些网络端口的使用,但是允许 SSH 的连接,那么也是能够通过将 TCP 端口转发来使用 SSH 进行通讯。

总的来说 SSH 端口转发能够提供两大功能:

1.加密 SSH Client 端至 SSH Server 端之间的通讯数据。

2.突破防火墙的限制完成一些之前无法建立的 TCP 连接。

SSH端口转发:

本地端口转发
远程端口转发
动态端口转发

本地端口转发

ssh -L <local port>:<remote host>:<remote port> <SSH hostname>
选项:
-f  后台启用
-N  不打开 远程shell ,处于等待状态
-g  启用网关功能
示例:
ssh –L 9527:telnetsrv:23 -N sshsrv
telnet 127.0.0.1 9527

当访问本机的 9527 的端口时发送数据时,本机作为SSH客户端把数据加密后转发到给SSH服务器,SSH服务器接收数据并解密后作为TELNET客户端转发到TELNET服务器。
data<->localhost:9527<->localhost:随机端口<->SSH服务器:22<->SSH服务器:随机端口<->telnetsrv:23

远程端口转发

ssh -R <local port>:<remote host>:<remote port> <SSH hostname>

让sshsrv 侦听9527 端口的访问,如有访问,就加密 后通过ssh服务转发请求到本机ssh客户端,再由本机解密后转发 到telnetsrv:23

动态端口转发

ssh -D <local port> <SSH Server>

本地转发,远程转发,但是前提都是要求有一个固定的应用服务端的端口号,但是像浏览器等进行 Web 浏览时就没有确定的端口这是就需要动态端口转发了。

上一篇 下一篇

猜你喜欢

热点阅读