ssh 端口映射

2020/06/23

本地端口映射

ssh -C -f -N -g -L 5432:127.0.0.1:5432  beta

远程端口映射

ssh -C -f -N -g -R 80:192.168.1.1:8080 user@192.168.1.1
ssh -C -f -N -g -R 20022:172.17.20.183:22 root@localhost -p 1337

ssh的三个强大的端口转发命令:

转发到远端:ssh -C -f -N -g -L 本地端口:目标IP:目标端口 用户名@目标IP

转发到本地:ssh -C -f -N -g –R 本地端口:目标IP:目标端口 用户名@目标IP

ssh -C -f -N -g -D listen_port user@Tunnel_Host

其中

-C,是进行数据压缩。

-f,是后台认证用户/密码,通常和-N连用,不用登录到远程主机。只有当提示用户名密码的时候才转向前台。

-N,是不执行远端命令,在只是端口转发时这条命令很有用处。

-g ,在-L/-R/-D参数中,是允许远端主机连接本地转发端口,如果不加这个参数,只允许本地主机建立连接。

-L,则是将本地端口映射到远端主机端口。本地端口:目标IP:目标端口

  将本地机(客户机)的某个端口转发到远端指定机器的指定端口。

  工作原理: 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有连接, 该连接就经过安全通道转发出去, 同时远程主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发。

  只有 root 才能转发特权端口。IPv6 地址用另一种格式说明: port/host/hostport

-R,表明是将远端主机端口映射到本地端口。本地端口:目标IP:目标端口

  将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口

   工作原理: 远程主机上分配了一个 socket 侦听 port 端口, 一旦这个端口上有连接, 该连接就经过安全通道转向出去, 同时本地主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发.。

  只有用 root 登录远程主机才能转发特权端口.。IPv6 地址用另一种格式说明: port/host/hostport

-p :被登录的ssd服务器的sshd服务端口。

-D port

  指定一个本地机器 “动态的'’ 应用程序端口转发.。

  工作原理: 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 根据应用程序的协议可以判断出远程主机将和哪里连接.。目前支持 SOCKS4 协议, 将充当 SOCKS4 服务器。

   只有 root 才能转发特权端口,可以在配置文件中指定动态端口的转发。

应用举例

  1. 将发往本机的80端口访问转发到192.168.1.1的8080端口

ssh -C -f -N -g -L 80:192.168.1.1:8080 user@192.168.1.1

  1. 将发往192.168.1.1的8080访问转发到本机的80端口

ssh -C -f -N -g -R 80:192.168.1.1:8080 user@192.168.1.1

(user为主机192.168.1.1上的用户)

-N - 不使用Shell窗口,纯做转发的时候用,如果你在映射完成后继续在服务器上输入命令,去掉这个参数即可