反向SSH内网服务器远程连接

反向SSH内网服务器远程连接

反向 SSH 的原理

什么是反向SSH?

反向 SSH(Reverse SSH)是一种通过中间公网服务器建立隧道,从外网访问位于内网或防火墙后的服务器的方法。 它常用于实验室或公司内部服务器没有公网 IP 的情况,保证可以安全远程管理。

假设你的场景:

实验室服务器(内网 / 防火墙后) → 无公网直接访问能力

你的公网服务器(有公网 IP,可以被访问)

本地电脑 → 想远程操作实验室服务器

流程:

txt
实验室服务器 ---[SSH Out]-> 公网服务器 ---[你本地 SSH]-> 公网服务器 ---[隧道]-> 实验室服务器

核心概念:

1.实验室服务器主动连接公网服务器(出站,不受防火墙限制)

2.建立一个 反向隧道

  • 在公网服务器上开一个端口(比如 2222)
  • 映射回实验室服务器的 SSH(22)

3.本地通过公网服务器的这个端口,就能访问实验室服务器

命令示例

1.实验室服务器上执行(建立反向隧道)

bash
ssh -N -R 2222:localhost:22 user@自己服务器公网IP
  • -R 2222:localhost:22 → 在 公网服务器 上开 2222 映射到实验室服务器的 22
  • -N → 不执行远程命令,只建立隧道
  • 这个命令执行后,公网服务器的 2222 就是通向实验室服务器的“入口”

2.本地电脑通过公网服务器访问实验室服务器

bash
ssh -p 2222 user@自己服务器公网IP

这里user可以是实验室服务器上已经存在的用户,执行完,输入其密码,即可进行连接。

注意事项

1、保持反向隧道长期在线

普通 ssh -R 会话一旦断开,隧道就消失

使用 autossh 可以自动重连:

bash
autossh -M 0 -N -f -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -R 2222:localhost:22 user@公网服务器IP

-f → 后台运行 ServerAliveInterval / ServerAliveCountMax → 避免意外断开

2、公网服务器防火墙/安全组

必须放行 TCP 2222(或你选择的端口)

在阿里云/腾讯云等,需要在安全组中添加规则

3、实验室服务器网络必须可用

即便是内网,也需要能发起外网连接(WIFI 或有出站权限的网线)

4、多端口或多用户场景

可以映射多个端口,例如 2223 → lab2、2224 → lab3

每个端口对应实验室不同服务器或用户

5、安全性建议

使用 SSH 密钥代替密码,提高安全性

隧道端口最好只绑定公网服务器 localhost 或指定 IP,避免被外网扫描。

6、掉线与重启问题

如果实验室服务器重启,隧道会消失

可以在实验室服务器设置 systemd service 启动 autossh 保持隧道

新故事即将发生
Paper Reading:Hallucination

评论区

评论加载中...