相关概念
- ssh 一种对数据进行加密安全传输的协议
- ssh tunnel 即ssh隧道,通过ssh连接建立起来的一条加密安全通道
- ssh port forwarding 即ssh端口转发,通过ssh隧道把TCP连接转发出去
相关参数
参数 | 说明 |
---|---|
C | 压缩数据传输 |
g | 允许远程主机连接到转发的端口 |
f | 认证成功后,后台运行 |
N | 不执行脚本或命令,通常和f 连用 |
o | 指定配置设置 |
L | 本地转发或正向转发 |
R | 远程转发或反向转发 |
D | 动态转发 |
本地转发
把本地主机的本地端口转发到远程主机的远程端口上
工作原理:本地主机
分配一个socket侦听本地端口,一旦该本地端口有了连接,该连接就通过加密安全通道转发出去,同时本地主机的本地端口就和远程主机的远程端口建立起了连接
X:Y:Z 把本地机器的X端口通过ssh隧道映射到远程Y机器的Z端口上
远程转发
把远程主机的远程端口转发到本地主机的本地端口上
工作原理:指定远程
分配一个socket侦听远程端口,一旦该远程端口有了连接,该连接就通过加密安全通道转发出去,同时远程主机的远程端口就和本地主机的本地端口建立起了连接
X:Y:Z 把本地Y机器的Z端口通过ssh隧道映射到远程机器的X端口上
# 注意配置文件(sshd_config)的配置
GatewayPorts=yes
动态转发
一个本地“动态的”应用程序级端口转发,可以充当socks代理服务器,使用socks协议(socks5和socks4)
工作原理:本地主机
分配一个socket侦听本地端口,一旦该本地端口有了连接,该连接就通过加密安全通道转发出去,根据应用程序的协议决定连接去向