SSH tunnel

零、 名词解释

本机: Windows 11 (192.168.1.25)
服务器: CentOS 7 (192.168.1.201)

SSH客户端: 192.168.1.25 OpenSSH_for_Windows_8.6p1, LibreSSL 3.4.3
SSH服务端: 192.168.1.201 OpenSSH_7.4p1, OpenSSL 1.0.2k-fips

一、 远程转发&本地转发

两个SSH客户端之间建立一个安全的通道
本地计算机上的端口转发到远程计算机上,或者反向转发,将远程计算机上的端口转发到本地计算机上

1.1 本地转发实例:

应用场景:

  • 绕过防火墙限制, 访问服务器任意资源.

Windows上执行:
ssh -L 8080:localhost:4000 user@remote_server

windows上的8080–>远程服务器的4000

1.2 远程转发实例:

192.168.1.201上执行:

ssh -R 8888:localhost:8006 root@192.168.1.200

访问192.168.1.201:8888 –> 192.168.1.200:8006

二、 动态转发(Dynamic Port Forwarding)

ssh -D $port -N user@host

SSH服务端和客户端建立加密连接
SSH客户端还会建立一个socks5代理, 所有从socks出去的流量,都通过这个加密连接转发。

应用场景:

  • 匿名访问互联网
  • 绕过防火墙限制

实例:
Windows上通过 ssh -D 5000 -N root@192.168.1.201与服务端建立ssh加密隧道
通过本地socks5的5000端口,实现Windows访问服务器192.168.1.201的任意资源.
图
图