• 目前我的生活场景中,端口转发主要用于在外面使用SSH连接家里的服务器
  • 需要有一台具有公网IP的服务器,配置不用太高,我用的是阿里云的轻量应用服务器
  • 步骤
    • 首先在家里的服务器上执行

      ssh -fNTR 7788:localhost:22 root@101.***.***.***
      
      • 作用:本地的 22 端口(22是SSH的默认端口)转发到我的公网服务器 root@101...***) 7788 端口‘
      • 参数说明
        • fN: 这是**ssh**命令的选项,用于在后台运行SSH连接,且不执行远程命令。
          • **f**表示将SSH连接放到后台运行。
          • **N**表示不执行远程命令,仅建立SSH连接。
        • T: 这是**ssh**命令的选项,用于禁用伪终端分配。
        • R 7788:localhost:22: 这是**ssh**命令的选项,用于在远程服务器上监听端口7788,并将所有流量转发到本地(localhost)的端口22(SSH默认端口)。这创建了一个远程端口转发(remote port forwarding),也称为反向隧道(reverse tunnel)。
        • root@101.***.***.***: 这是SSH连接的目标服务器的用户名和IP地址(或域名)。**root是用户名,101.***.***.*****是公网服务器的IP地址或域名。
      • 记得在公网服务器的防火墙把7788端口打开
    • 然后在公网服务器执行

      ssh -p 7788 root@localhost
      
      • 此时的root指的是你家里服务器的用户名
      • localhost指的是阿里云服务器,不需要改
      • 为什么不需要改?你不是在连家里的服务器吗?为什么连的是阿里云自己?
        • 因为第一条指令的作用就是让家里的服务器监听阿里云的7788端口,此时让阿里云连接自己的7788端口,就相当于在连家里的22端口