SSH转发(SSH forwarding)是一种通过SSH连接安全地传输网络流量的技术,常用于许多情况下,比如远程访问内部服务、加密流量传输等。

SSH转发包括三种主要类型:

  1. 本地端口转发(Local Port Forwarding)

    • 将本地主机的某个端口转发到远程服务器的一个指定主机和端口上。
    • 常用命令:ssh -L local_port:remote_host:remote_port user@ssh_server
  2. 远程端口转发(Remote Port Forwarding)

    • 将远程服务器的某个端口转发到本地主机的一个指定主机和端口上。
    • 常用命令:ssh -R remote_port:local_host:local_port user@ssh_server
  3. 动态端口转发(Dynamic Port Forwarding)

    • 创建一个动态 SOCKS 代理,使得所有发送到本地端口的流量都经过SSH连接,并通过远程服务器转发。
    • 常用命令:ssh -D local_socks_port user@ssh_server

当需要通过一个中间服务器访问另一个内部服务时,可以使用多级转发。

  • 多级转发(Multi-Hop Forwarding)

    1
    2
    3
    ruby
    复制代码
    ssh -L 8080:internal-service:80 user@jump-host -t ssh -L 9090:localhost:8080 user@internal-server

    首先通过跳板主机(jump-host)连接到内部服务器(internal-server),然后建立本地端口转发,将本地的9090端口映射到内部服务器上的8080端口,最终访问内部服务。