写于:2014-06-22 	最近一次更新:2016-03-27

以下命令均在sshClient机器上输入
本地转发详解 ssh \ -p sshSelf_Port \ -L sshClient_eth2_IP:sshClient_ListenPort:OneHost_IP:OneHost_Port \ username@sshServer 本地转发-L 使用注解: -p 这个参数指定SSH程序本身要使用的端口,即sshServer上sshd自身服务开启的端口 -L,Local:本地主机监听到的数据转发到sshServer路由可达的OneHost上 sshClient这台机器上必须运行ssh客户端,sshServer这台机器上必须运行sshd服务, OneHost机器上有没有ssh相关服务无关紧要,但是OneHost机器是被转发数据的目的地, 必须保证sshServer_IP能够主动连接OneHost_IP即可, (而不在乎OneHost_IP是否能够主动连接sshServer_IP,比如sshServer_IP是内网IP地址,OneHost_IP是公网IP地址). sshClient与sshServer之间的连接被ssh加密,sshServer与OneHost之间的连接未被ssh加密 sshServer和OneHost可以是同一台机器,即OneHost_IP = localhost.
远程转发详解 ssh \ -p sshSelf_Port \ -R sshServer_eth5_IP:sshServer_ListenPort:OneHost_IP:OneHost_Port \ username@sshServer 远程转发-R 使用注解: -p 这个参数指定SSH程序本身要使用的端口,即sshServer上sshd自身服务开启的端口 -R,Remote:远程主机监听到的数据转发到sshClient路由可达的OneHost上 sshClient这台机器上必须运行ssh客户端,sshServer这台机器上必须运行sshd服务, OneHost机器上有没有ssh相关服务无关紧要,但是OneHost机器是被转发数据的目的地, 必须保证sshClient_IP能够主动连接OneHost_IP即可, (而不在乎OneHost_IP是否能够主动连接sshClient_IP,比如sshClient_IP是内网IP地址,OneHost_IP是公网IP地址). sshClient与sshServer之间的连接被ssh加密,sshClient与OneHost之间的连接未被ssh加密; sshClient和OneHost可以是同一台机器,即OneHost_IP = localhost
动态转发详解 ssh \ -p sshSelf_Port \ -D sshClient_eth6_IP:sshClient_ListenPort \ username@sshServer 动态转发-D 使用注解: -p 这个参数指定SSH程序本身要使用的端口,即sshServer上sshd自身服务开启的端口 -D,Dynamic:动态转发本地主机监听到的数据到sshServer路由可达的目的主机 动态转发的意思是,不必指定被转发数据的目的主机的IP和Port; sshClient将监听到的数据透传到sshServer上,sshServer再根据数据的目的地址和端口将数据发出去; 整个过程,数据的目的地址和目的端口是随着sshClient的需求任意变化的,是动态的, 此时SSH程序本身并不关心数据的目的地址和目的端口,SSH程序充当了SOCKS代理服务器; ssh的动态转发功能经常被用来翻墙上网/跨运营商访问/加速访问 本地主机打不开某网站或者慢得要死,比如说用的移动或者联通网络,访问主机放在电信的网站 而远程主机打开这个网站很快,比如远程主机在北京的万网IDC机房 这时就可以利用ssh的动态转发功能加速访问 重要步骤如下: 本地主机执行:nohup ssh -fND 56789 username@sshServer 本地主机浏览器设置SOCKS代理:代理IP为127.0.0.1,代理Port为56789 这样就可以加速访问跨运营商的网站了