文章目录
端口转发概述
让我们先来了解一下端口转发的概念吧。我们知道,SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据。但是,SSH 还同时提供了一个非常有用的功能,这就是端口转发。它能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程有时也被叫做“隧道”(tunneling),这是因为 SSH 为其他 TCP 链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP,LDAP 这些 TCP 应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输。而与此同时,如果您工作环境中的防火墙限制了一些网络端口的使用,但是允许 SSH 的连接,那么也是能够通过将 TCP 端口转发来使用 SSH 进行通讯。总的来说 SSH 端口转发能够提供两大功能:
1) 加密 SSH Client 端至 SSH Server 端之间的通讯数据。
2) 突破防火墙的限制完成一些之前无法建立的 TCP 连接。
ssh转发有三种转发方式
动态转发,本地转发,远程转发,X转发(使用时带上-X参数,实现图示化管理,有场合限制)
ssh转发常用参数
-C 启用数据压缩
-g 若不使用此命令,则只允许,本地建立连接
-f 后台认证用户/密码,通常和-N连用,不用登录到远程主机。
-N 不执行脚本或命令,通常与-f连用
动态转发
#原理:这会使本地主机监听端口port,一旦与该端口建立连接,经过该端口的数据会被转发到安全通道发送到远程主机。远程主机的sshd会根据数据包的应用层协议(如HTTP)自动建立对应的连接(本地会监听端口,远程主机不会监控,只有在接到转发数据时,转发出去)
#语法:ssh -D 端口 用户名@远程主机地址
ssh -C -D 2000 root@119.29.4.98
动态转发应用:实现web代理
第一:转发前查询ip归属
第二:执行动态转发
第三:设置浏览器代理
第四:查询ip归属
本地转发到远端
场景:如图所示,北海办事处的同事想访问南昌分部内网主机提供的web服务(内部BBS)
#原理:将本地指定端口的数据通过socket,转发到目标主机预定义的端口上(目标主机上提供某种服务的端口),注意:特权端口需要root才能转发,并且不能自动解析协议。
#语法:ssh -L 本地端口号(指定端口):目标主机地址:目标主机的端口(通常是服务端口) 用户名@中转主机地址
命令:ssh -fNC -L 2000:host-A:80 root@host-B
#解释:上面的命令是在ssh-client主机(host-C执行此命令的主机)上监听一个指定的端口号(2000) 并将访问本地2000端口的数据,通过与ssh-server即(host=B)的ssh隧道转发至目的主机host-A的服务端口80上,以实现在ssh-client上访问本地端口2000就能获取目标主机host-A的服务端口80提供的web服务
#提醒:上面目标主机与中转主机地址可以相同,也可以不同,不同时需要满足{ssh-client(host-C)主机能访问host-B,host-B能访问host-A}
远程转发到本地
#场景:如图所示,防火墙分割了内网和外网,并且禁止外网访问内部的80端口
#需求:要实现,外网用户访问内网主机提供的web服务
#实现思路:由于内网是私有地址,并且防火墙阻挡了外部进入内部80端口的数据,我们可以由内部向外发起ssh连接,利用ssh的远程转发实现,外网主机host-B访问本地指定端口,就能获取内网主机host-A提供的web服务。
#要求:内部提供web服务的主机充当ssh-client端,外部主机安装并运行sshd服务充当ssh-server端。
#远程转发语法:ssh -R 需要转发数据的主机的指定端口(即ssh-server主机指定端口):目标主机:目标主机预定义端口(服务端口) root@ssh-server主机地址
实现命令:ssh -fNC -R 2000:host-A:80 root@host-B
#解释:上面命令是将外网主机host-B的2000端口,转发至内网主机host-A的80端口上,当在外网主机host-B上浏览其中输入127.0.0.1:2000便能访问内网提供的web服务了
#提醒:上面命令中host-A与host-B不能相同,相同无意义。执行ssh命令的主机与host-A可以相同,相同时host-A可以写成localhost;也可以不同,但需满足(host-A与host-B可以不互通,但ssh-client主机能同时访问host-A,与host-B),命令执行后,将会在host-B上监听2000端口,并通过ssh隧道由ssh-client主机转发至host-A的80端口
#扩展:ssh远程转发适用于,外网到内网,以及反向穿越防火墙两种情景
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论