SSH端口转发-构建基于SSH服务的网络隧道
1、简介
- SSH有三种端口转发模式,本地端口转发
Local Port Forwarding
,远程端口转发Remote Port Forwarding
以及动态端口转发Dynamic Port Forwarding
。对于本地/远程端口转发,两者的方向恰好相反。动态端口转发则可以用于科学上网。 - SSH端口转发也被称作SSH隧道(SSH Tunnel),因为它们都是通过SSH登陆之后,在SSH客户端与SSH服务端之间建立了一个隧道,从而进行通信。SSH隧道是非常安全的,因为SSH是通过加密传输数据的(SSH全称为Secure Shell)。
- SSH转发参数:
1
2
3
4
5
6
7
8
9-C:压缩数据
-f :后台认证用户/密码,通常和-N连用,不用登录到远程主机。
-N :不执行脚本或命令,通常与-f连用。
-g :在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。
-L : 本地端口:目标IP:目标端口
-D : 动态端口转发
-R : 远程端口转发
-T :不分配 TTY 只做代理用
-q :安静模式,不输出 错误/警告 信息
2、本地端口转发模式-Local Port Forwarding
说明:有本地网络服务器的某个端口,转发到远程服务器某个端口。说白了就是,将发送到本地端口的请求,转发到目标端口;
1 | #ssh -L 本地网卡地址:本地端口:目标地址:目标端口 用户@目标地址 |
3、远程端口转发模式-Remote Port Forwarding
说明:远程转发,即把发给远程机器的某个端口请求,转发到本地的机器上面;
1
2 #ssh -R [远程地址:]远程端口:本地地址:本地端口 远程用户@远程地址
ssh -f -N -R 10000:127.0.0.1:22 [email protected]
4、动态端口转发模式-Dynamic Port Forwarding(SOCKS代理)
场景:本机可以上网,利用
1 ssh -N -f -g -D 2222 [email protected]