SSH正向连接和反向连接

ssh命令是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器。

反向连接是什么?

平时大多数使用ssh命令是控制端主机主动连接受控端主机,通过这个连接控制端主机可以主动的向受控端主机发送一些请求,这称为正向连接。
反向连接则是指受控端主机主动连接控制端主机,通过这个连接控制端主机可以主动的向受控端主机发送一些请求。
使用-L和-R参数可以分别实现正向连接和反向连接。

ssh -L sourcePort:forwardToHost:onPort connectToHost

意思:连接主机connectToHost,监听本地的端口sourcePort,通过主机connectToHost,把到本地端口sourcePort的连接转发到主机forwardToHost的端口onPort。在这里插入图片描述
图中的两个例子:
your host是敲命令的主机。

  1. ssh -L 123:localhost:456 remotehost
    连接主机remotehost,监听本地的端口123,通过remotehost,把到本地端口123的连接转发到本地主机localhost的端口456。
  2. ssh -L 123:farawayhost:456 remotehost
    连接主机remotehost,监听本地的端口123,通过remotehost,把到本地端口123的连接转发到主机farawayhost的端口456。

ssh -R sourcePort:forwardToHost:onPort connectToHost

意思:连接主机connectToHost,监听远程主机connectToHost的端口sourcePort,把到远程主机connectToHost的端口sourcePort的连接转发到主机forwardToHost的端口onPort。
在这里插入图片描述
图中的两个例子:

  1. ssh -R 123:localhost:456 remotehost
    连接主机remotehost,监听主机remotehost的端口123,通过本地主机,把到主机remotehost的端口123的连接转发到本地主机localhost的端口456。
  2. ssh -R 123:nearhost:456 remotehost
    连接主机remotehost,监听主机remotehost的端口123,通过本地主机,把到主机remotehost的端口123的连接转发到主机nearhost的端口456。

对比-L和-R

ssh -L sourcePort:forwardToHost:onPort connectToHost
ssh -R sourcePort:forwardToHost:onPort connectToHost
两者都是把到端口sourcePort的连接转到主机forwardToHost的端口onPort,区别在于sourcePort端口在哪个主机上,以及通过哪个主机做桥梁。
-L是通过远程主机connectToHost做桥梁,监听本地主机;
-R是用过本地主机做桥梁,监听远程主机connectToHost。

参考文献:
StackExchange How does reverse SSH tunneling work?
通过ssh反向连接内网主机的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值