SSH端口转发-构建基于SSH服务的网络隧道

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
2
3
4
5
6
#ssh -L 本地网卡地址:本地端口:目标地址:目标端口 用户@目标地址
#将本机的1234端口转发至本机的22端口,应用用禁止22端口的场景
ssh -C -f -N -g -L 1234:127.0.0.1:22 [email protected]

#将本机的1234端口转发至远程主机31.142的22端口
ssh -C -f -N -g -L 1234:192:168.31.142 iflytek@192:168.31.142

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]

-------------本文结束感谢您的阅读-------------
LiGuanCheng wechat
如有问题,请与我微信交流或通过右下角“daovoice”与我联系~。
请我喝一杯咖啡~