场景介绍
- 公网机器B可以被客户机器A和内网机器C通过ssh访问到
- 希望通过公网机器B让客户端机器A访问到内网机器C
实现方式
- 公网机器B配置文件/etc/ssh/sshd_config中修改:GatewayPorts yes
- 内网机器C上执行:ssh -CfqTnN -R 12022:localhost:22 user@xx.test.cn
- 客户端机器A连接内网机器C:ssh user@xx.test.cn -p 12022
参数说明
- -f 后台执行
- -C 允许压缩数据
- -N 不执行远程指令
- -R 将远程主机的某个端口转发到本地指定机器的指定端口 listen-port:host:port
- -L 将本地主机的某个端口转发到远程指定主机的指定端口 listen-port:host:port
- -D 指定本地主机的某个端口“动态的”转发(socks5协议)port
- -q 静默模式
- -T 禁止分配伪终端
- -n 重定向stdin到/dev/null
- -p 指定远程主机的端口
自动断线重连
- 使用autossh发起连接
- autossh -M 4010 -CfqTnN -R 12022:localhost:22 user@xx.test.cn
- -M 使用本地主机的某个端口监视ssh连接状态,连接有问题会自动重连