案例说明

假设我有一台处于局域网的服务器 A,但由于没有公网 IP,因此我们无法直接从外网连接这个服务器。不过服务器 A 能访问具有公网IP的服务器B。那么我们就可以在服务器 A 上做到服务器 B 的反向代理,然后我们便能通过服务器 B 来连接服务器 A

操作步骤

首先修改服务器 B 的 sshd_config 配置文件:

  1. # 打开配置文件
  2. sudo vim /etc/ssh/sshd_config
  3. # 将 GatewayPort 的注释取消并把值改成yes
  4. GatewayPort yes

修改保存后,执行如下命令将 sshd 服务重启下:

  1. sudo systemctl restart sshd

在A服务器上执行如下命令

  1. ssh -[f]NR rPort:localhost:lPort username@rHost
  2. # f: 后台运行
  3. # N:仅做端口转发
  4. # R:反向代理
  5. ssh -fNR 8080:192.168.0.103:8000 tiffin@mdatacenter.mhccenter.com

连接测试

  1. nmap -sS -Pn rHost
  2. # 通过这个命令即可查看到rPort由原来的关闭状态变成了打开状态

参考:
https://www.hangge.com/blog/cache/detail_2893.html