本地端口转发
从本机发起
ssh -l 7001:hostname:389 serverhost
将本地应用的数据发送到7001上。
本机ssh 客户端 接收7001上的数据,加密传输到serverhost主机的ssh服务端。
serverhost上的ssh服务端接收到数据后,将数据发送到serverhost上的389端口上。
应用数据通过ssh,完成加密,转发,解密,通讯。
ssh客户端向ssh服务端连接,并且应用也是客户端向服务器端连接,是本地端口转发。
client<—–>appclient<–7001—>sshclient<—–>server<—->sshserver<–389–>appclient
远程端口转发
从服务器端发起反向连接
ssh -r 7001:hostname:389 ClientHost
与本地端口转发数据流基本一致。
应用数据将数据发送到本机的7001端口上。
本机的ssh服务端接收7001端口上数据,加密传输到ssh客户端上,ssh客户端解密接收数据转发到监听的389端口上。
同样是ssh客户端向ssh服务端发连接,但是应用确是服务端连接的客户端连接,这是远程端口转发。
client<—->sshserver<–7001–>appclient<—–>server<—–>sshclient<—389–>appserver
远程端口转发和本地端口转发的区别。
ssh连接方向和应用连接方向相同,就是本地端口转发,不同就是远程端口转发。
动态端口转发
使用7001端口作为本地端口,实现动态转发。
ssh -D 7001 <SSH Server>