通过SSH反向隧道让局域网内大模型提供公网可访问的Web服务
介绍了如何通过SSH反向隧道将局域网内的大模型Web服务映射到公网。主要步骤包括:1)配置云服务器SSH支持公网监听;2)开放防火墙端口;3)在局域网机器建立反向隧道连接;4)使用autossh或nohup保持连接稳定;5)验证并访问服务。
通过 SSH 反向隧道让局域网内大模型提供公网可访问的Web服务
最近在学习开源大模型微调方案Weclone时,想要对训练好的模型进行部署,尝试了项目提供的web端服务Demo(weclone-cli webchat-demo
),服务能够在本地局域网内通过SSH代理的方式展示,具体参考原项目:
- blog:
https://blog.051088.xyz/posts/weclone-linux-tutorial/#SSH代理- github:
https://github.com/xming521/WeClone/tree/master
恰好我有一个云服务器具有公网ip,因此产生想法,能否用ssh隧道将本地服务器的web服务转发至公网,使所有公网用户可访问。
因此总结,本文针对的情况是:
- 本地/局域网内服务器 运行模型服务,但没有公网 IP,外部无法直接访问。
- 有一台云服务器 拥有公网 IP,但配置不足,无法直接运行大模型。
这篇文章讨论如何用 SSH 反向隧道(Reverse SSH Tunnel)方式,让外部用户通过云服务器访问运行在局域网内的模型服务。
场景示意
[局域网服务器] ←SSH隧道→ [云服务器(公网IP)] ←用户浏览器
weclone-cli 7860端口 监听公网:7860
前提条件
- 局域网机器能通过 SSH 连接到云服务器
- 云服务器为 Linux(如 Ubuntu/CentOS),并有公网 IP
- 局域网机器运行模型服务,监听在本地
127.0.0.1:7860
✅ 第一步:配置云服务器支持公网监听
编辑 SSH 配置文件:
sudo nano /etc/ssh/sshd_config
确保以下内容存在并取消注释:
GatewayPorts yes
AllowTcpForwarding yes
GatewayPorts yes
:允许 SSH 隧道监听公网地址AllowTcpForwarding yes
:允许端口转发
保存并重启 SSH 服务:
sudo systemctl restart sshd
✅ 第二步:开放云服务器的防火墙端口
根据系统类型选择:
Ubuntu(使用 UFW):
sudo ufw allow 7860
CentOS / RHEL(使用 firewalld):
sudo firewall-cmd --add-port=7860/tcp --permanent
sudo firewall-cmd --reload
✅ 第三步:局域网机器建立反向隧道
在隧道建立之前,确保web服务已经启动,并部署在127.0.0.1:7860上。以我使用的Weclone为例,运行脚本会启动一个服务器本地 Web 服务,地址为 http://127.0.0.1:7860
新建一个窗口运行以下命令,将本地端口转发到云服务器:
ssh -R 0.0.0.0:7860:127.0.0.1:7860 youruser@公网IP
参数说明:
0.0.0.0:7860
:云服务器监听所有公网地址上的 7860 端口127.0.0.1:7860
:局域网机器上模型服务的本地监听端口youruser@公网IP
:SSH 登录云服务器的账号和地址
📌 一旦执行成功,任何人访问 http://云服务器IP:7860
,看到的就是本地服务页面。
🚫 注意:关闭终端 SSH 会话后,隧道就断了!
✅ 推荐做法 1:使用 autossh 保持连接(自动重连)
安装:
sudo apt install autossh
使用:
autossh -f -N -R 0.0.0.0:7860:127.0.0.1:7860 youruser@公网IP
说明:
-f
:后台运行-N
:不执行远程命令,仅转发-R
:反向端口转发autossh
会自动检测断线并重连
✅ 推荐做法 2:使用 nohup 保持后台运行(无自动重连)
nohup ssh -N -R 0.0.0.0:7860:127.0.0.1:7860 youruser@公网IP > ssh.log 2>&1 &
✅ 第四步:验证是否监听成功
在云服务器上运行:
sudo ss -tlnp | grep 7860
如果你看到:
LISTEN 0 128 0.0.0.0:7860 ...
表示公网监听成功。
注意!如果此处显示的是
LISTEN 0 128 0.0.0.0:7860 ...
说明只监听了本地地址,外部无法访问。需要检查第三步的操作是否正确
✅ 第五步:外部用户访问
现在你可以从任意外部设备访问:
http://云服务器IP:7860
这就是你局域网服务器上运行的模型服务页面 🎉
可选:开机自动启动隧道连接
可使用 systemd 或 crontab @reboot
设置自动重连,还没有仔细记录,可以自行查找。
总结
反向 SSH 隧道是一种简单、安全、高效的方法,可将无法直接暴露的局域网服务通过云服务器转发给公网访问者。只需一条 SSH 命令,就能实现“内网穿透”的效果,非常适合调试阶段的模型部署和前端测试场景。

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)