SSH端口转发
简介
SSH端口转发也被称作SSH隧道(SSH Tunnel),因为它们都是通过SSH登陆之后,在SSH客户端与SSH服务端之间建立了一个隧道,从而进行通信
SSH隧道是安全的,因为SSH是通过加密传输数据的(SSH全称为Secure Shell)
作用
- 加密SSH client 与 SSH server 传输的数据
- 突破防火墙限制
类型
- 动态端口转发
- 本地端口转发
- 远程端口转发
动态端口转发
将本地不加密的网络连接,全部改走SSH连接,并通过代理服务器发送ssh -D 1080 user@host
SSH会建立一个socket,监听本地的1080端口
传向本地1080端口数据,通过SSH连接传送到SSH服务端,再由SSH服务端发送出去,相当于将SSH服务端当成代理服务器
本地端口转发
将发送到本机端口的请求,通过SSH服务端,转发到目标端口ssh -L 8080:192.168.1.1:80 user@host
传向本地8080端口数据,通过SSH连接传送到SSH服务端,再由SSH服务端发送到服务端的192.168.1.1的80端口
远程端口转发
将发送到远程端口的请求,通过SSH客户端,转发到目标端口ssh -R 8080:192.168.1.1:80 user@host
传向host的8080端口数据,通过SSH连接传送到SSH客户端,再由SSH客户端发送到客户端的192.168.1.1的80端口
链式转发
只需要一台具有公网IP的机器,两个独立网络可以互通
1 | 假设A主机在公司,B主机在家,C主机为远程云主机 |
附:
常用命令
1 | ssh -ND 1080 user@host |
SSH命令参数
1 | -C:压缩数据传输 |