从外网 反向代理 SSH 连接局域网内的电脑

时间:2020-12-30 09:44:22

准备

要有个外网可以访问的主机支持端口转发,比如一个独立IP的VPS (如 123.123.123.123)
局域网和 123.123.123.123,以 Ubuntu 为例

步骤

  1. 在 123.123.123.123 上编辑 vi /etc/ssh/sshd_config 增加或修改为 GatewayPorts yes,再重启 SSH sudo service ssh restart
  2. 在局域网内机器上执行 ssh -p 60 -NfR 2222:localhost:22 user@externalhost.com(-N 仅做转发,-f 后台运行)
  3. 任何外网机器访问 123.123.123.123 的 2222 端口,都会转发到 局域网内的这台机器 ssh -p 2222 lanPcUser@externalhost.com (登录的时候使用局域网机器的用户)

更新: 如果局域网有 Linux 电脑或者 raspberry pi 的话,也可以安装 AutoSSH, 这个更稳定,并且在断线后自动重新连接。说明步骤 里说得清楚,远程端口转发的话,-L 变成 -R。