SSH开启端口转发需要修改 /etc/ssh/sshd_config配置文件,将 GatewayPorts
修改为yes
参数解释:
-f 后台执行ssh指令
-C 允许压缩数据
-N 不执行远程指令
-R 将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口
-L 本地端口转发
-D 动态端口转发
简版:本地端口转发(相当于正向代理),本地监听16379端口,将16379端口的流量都转发给6379端口
ssh -fCNL *:16379:localhost:6379 localhost
SSH做反向隧道(远程端口转发)实例
- server的配置
# 将Server的22号端口的流量都转发给跳板机2的5555端口
ssh -fCNR 跳板机2:5555:localhost:22 root@跳板机2
- 跳板机2的配置
ssh -fCNR 跳板机1:5555:localhost:8888 root@跳板机1
- 跳板机1的配置
# 正向代理
# 本地监听的1234端口的流量都转发给本地的8888端口
ssh -fCNL *:1234:localhost:8888 localhost
PC1上
ssh -p 1234 root@跳板机1
最终连接到了server的22端口上
缺点:这种ssh反向链接会因为超时而关闭,如果关闭了那从外网连通内网的通道就无法维持。
解决方法:使用 autossh来连接。
反向代理
autossh -M 9999 ssh -fCNR 跳板机1:5555:localhost:22 localhost
-M 参数,用来监听ssh的状态,如果端口之后,从9999端口发送信息,进而进行重新连接。
版权声明:本文为q965844841qq原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。