SSH端口转发与二次转发

14 篇文章 1 订阅
9 篇文章 0 订阅

SSH Tunneling

SSH端口转发功能通过ssh隧道方式,在本地端口和远程服务器的某个服务之间建立转发关系,而SSH连接充当了转发服务流量的隧道。从安全性来说,正确配置的SSH服务器有很高的安全性,而SSH Tunneling可以转发任意的服务,避免了将其他机器或端口暴露给外网。
如下图所示,Xshell客户端首先连接到公网IP地址x.y.160.14,ssh连接建立之后,根据配置的转发规则,在Xshell客户端所在主机的本地15902端口和目标服务器172.26.0.17的5900端口之间建立了转发关系。VNC客户端访问本地15902端口即相当于访问172.26.0.17的5900端口VNC服务。在一个SSH连接上,可以建立多个转发规则,如图中的172.26.0.17,172.26.0.18,172.26.0.19。SSH服务器x.y.160.14的内网地址是172.26.0.14,SSH服务器和转发目标通常位于同一个网段。
ssh tunnel

二次转发

有时仅转发一次还不能方便访问到位于远端的、内网的服务,而是需要做两次跳转。
例如,首先SSH到服务器A,作为跳板机,只能从服务器A再SSH登录服务器B,最后要访问的web服务位于服务器C,服务器C跟服务器B在同一个内网网段。
第一层转发规则建立在服务器A的SSH连接上,可以表示为
ssh(serverA, 22) -> tunnel1(localhost:localport1) -> serverB:22
serverA是10.x.y.19,serverB是202.x.y.204,localport1是22222。
tunnel1

第二层转发规则建立在localhost:localport1这个ssh服务的连接上,可以表示为
ssh(localhost, localport1) -> tunnel2(localhost:localport2) -> serverC:80
serverC是192.168.x.196,localport2是10080。
tunnel2

综合起来,做了两次隧道转发,tunnel1(localhost:localport1) 在外层,tunnel2(localhost:localport2)在内层。沿着这种思路,可以实现多层转发。

最后,打开浏览器访问本地10080端口,数据将依次通过tunnel2和tunnel1,最终访问到远端的serverC的服务。
这里写图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值