SSH隧道
ssh -C -f -N -L listen_port:DST_Host:DST_port user@Tunnel_Host ssh -C -f -N -R listen_port:DST_Host:DST_port user@Tunnel_Host ssh -C -f -N -D listen_port user@Tunnel_Host
-L port:host:hostport #建立本地SSH隧道(本地客户端建立监听端口) 将本地机(客户机)的某个端口转发到远端指定机器的指定端口. -R port:host:hostport #建立远程SSH隧道(隧道服务端建立监听端口) 将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口. # 有本地映射肯定有远程映射,就是把-L换成-R,这样我们访问远程主机的端口就相当于访问本地的端口,但感觉作用不大。 -D port 指定一个本地机器 “动态的’’ 应用程序端口转发. -C 压缩数据传输。 -N Do not execute a shell or command. 不执行脚本或命令,仅仅做端口转发。通常与-f连用。 -f Fork into background after authentication. 后台认证用户/密码,不用登录到远程主机。
远端80端口映射到本地9999端口
![](https://images2018.cnblogs.com/blog/520721/201804/520721-20180409235440090-1367242520.png)
本机8080映射到远端 (选择打开ssh中的GatewayPorts yes,则可以映射到远端的0.0.0.0:8799端口上,否则只能绑定到本机127.0.0.1上)
sshpass -p fq@dq ssh -o StrictHostKeyChecking=no -C -f -N -R xxxx:localhost:22 root@xxxxx -p xxx &