SSH 常见的三种转发和代理命令

主要三个命令

ssh -C -f -N -g -L local_port:remote_ip:remote_port user@remoteip 
ssh -C -f -N -g -R local_port:remote_ip:remote_port user@remoteip 
ssh -C -f -N -g -D local_port user@remote_ip

参数的解释: 
-f Fork into background after authentication. 
后台认证用户/密码,通常和-N连用,不用登录到远程主机。

-L local_port:remote_ip:remote_port
将本地的某个端口转发到远程端口. 工作原理是 本地机器上分配了一个 socket 侦听端口, 一旦本地的这个端口上有了连接, 该连接就经过安全通道转发出去, 同时与远程的主机和对应的端口建立连接.

-R local_port:remote_ip:remote_port 
将远程主机的某个端口转发到本地端口. 工作原理是远程主机上分配了一个 socket 侦听端口, 一旦远程的这个端口上有了连接, 该连接就经过安全通道转发到本地, 同时本地主机和远程服务器端口建立连接.

-D port 
开启Socks代理模式,工作原理是本地机器上分配了一个 socket 侦听端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去。目前支持 SOCKS4 协议。

-C Enable compression. 
压缩数据传输。

-N Do not execute a shell or command. 
不执行脚本或命令,通常与-f连用。

-g Allow remote hosts to connect to forwarded ports. 
在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接