Featured image of post 技术解析:无公网IP服务器的SSH反向隧道方案

技术解析:无公网IP服务器的SSH反向隧道方案

基于SSH反向隧道实现无公网GPU服务器的远程访问方案

一、核心事件

这篇文章介绍了一套SSH反向隧道方案,用于解决无公网IP的GPU服务器远程访问问题。核心要点如下:

  • 方案原理:利用有公网IP的跳板机(阿里云ECS),通过反向隧道将内网GPU服务器端口暴露
  • 适用场景:AIGC开发中的ComfyUI部署、模型训练等
  • 关键工具:SSH的-R参数、autossh自动重连
  • 部署方式:提供systemd后台运行版本,支持开机自启
  • 无需交互:密钥复用+自动免密登录

二、技术细节与成本对比

典型的网络拓扑是:

1
本地电脑 →(SSH)→ 阿里云ECS(公网) ←(反向SSH)← GPU实例(无公网)

反向隧道的关键在于GPU实例主动连接公网跳板机。这种设计巧妙之处是:

  • 跳板机只需开放22端口(SSH默认端口),无需额外开放8188(ComfyUI)等业务端口
  • SSH隧道天然加密,比第三方穿透工具更稳定
  • 成本对比:99元/年的阿里云轻量服务器即可胜任跳板机,远低于购买公有云GPU实例的成本

脚本支持多实例部署,通过INDEX参数动态分配端口:

  • SSH端口:2222 + INDEX - 1
  • ComfyUI端口:8188 + INDEX - 1

例如gpu-01默认使用2222/8188,gpu-02使用2223/8189

三、端口转发配置

阿里云跳板机需启用IP转发:

1
2
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
sysctl -p

注意:由于走的是SSH 22端口通道,无需在安全组额外开放2222或8188端口,简化了配置步骤。

四、落地建议

适合直接用的人:

  • 已有公网跳板机(阿里云ECS或其他云厂商)
  • 需频繁访问内网ComfyUI或VS Code远程开发
  • 对第三方穿透工具稳定性不满意

建议再等等:

  • 无公网跳板机资源(需要先购买一台ECS)
  • 非技术背景用户(方案涉及SSH/密钥/脚本执行)
  • 仅偶尔访问需求(SSH隧道性能优势不明显)

写在最后

SSH反向隧道是内网穿透的经典方案,不依赖额外软件安装,适合资源受限场景。对于AIGC开发者,这套方案将GPU实例的可用性提升了一个档次,且成本可控。