SSH端口转发的三种模式
ZKEASOFT July 02, 2019
使用SSH的端口转发,可以突破一些网络限制,加密传输或者内网穿透。SSH的端口转发有三种模式,本地端口转发,远程端口转发和动态端口转发。
本地端口转发
本地端口转发,是把对本端口的请求转发到远程服务器的对应端口:
ssh -L 5000:localhost:1000 [ServerAddress]
当请请求本地的5000端口时,该请求会转发到服务器的1000端口。
小结:本地->远端
远程端口转发
远程端口转发,是把对远程端口的请求转发到本地的对应端口上。使用远程端口转发,可以实现内网穿透。
ssh -R 1000:localhost:5000 [ServerAddress]
当请求服务器的1000端口时,该请求会被转发到本地的5000端口。
注意:Linux上的远程端口转发,远程服务器默认监听的是本地端口,如果需要监听外部IP端口,要开启GatewayPorts
vi /etc/ssh/sshd_config
找到#GatewayPorts no
,删除前面的#号,并把no
改为yes
然后重启ssh服务:
systemctl restart sshd
小结:远端->本地
动态端口转发
动态端口转发,可以将本地的请求转到远程服务器,并由远程服务器帮助请求目标地址。
ssh -D 1888 [ServerAddress]
所以可以将请求代理到1888端口,并由服务器去请求以突破网络限制。