核心方案:SSH 反向端口转发,不用改路由器端口映射、不用公网 IP,从你本地主动发起连接,把本地模型端口暴露给远端 DO 虚拟机,安全又好配置。
先理清基础信息
- 本地 LLaMA/Ollama 服务默认端口:11434(绝大多数开源模型默认端口)
- 你本地电脑:运行模型、提供推理接口
- 远端:DigitalOcean Ubuntu 虚拟机
- 逻辑:本地主动连 DO 机器,把本地 11434 端口,映射成 DO 机器自身的一个端口,DO 程序访问本机端口,就能直达你的本地模型
- 本地模型正常启动,接口可本机自测本地命令行执行测试,能正常返回结果就代表服务没问题
curl http://127.0.0.1:11434/api/tags
- 本地电脑可以正常 SSH 连接到你的 DO 虚拟机
格式说明
ssh -R 远端端口:127.0.0.1:本地模型端口 DO用户名@DO公网IP
本地模型端口 11434,我们把它映射到 DO 机器的51434端口在你自己本地电脑的终端里执行这条命令:
ssh -R 51434:127.0.0.1:11434 root@你的DO服务器IP
参数释义
-R:代表反向端口转发,本地端口推送到远端服务器
51434:DO 虚拟机上对外访问的代理端口(自定义,避开常用端口就行)
127.0.0.1:11434:你本机运行模型的地址和端口
root@DOIP:你登录 DO 虚拟机的账号和公网 IP
执行后,会正常登录进入 DO 虚拟机终端,这个窗口不要关闭,关闭隧道就断开。
- 现在处于 DO 虚拟机命令行内,测试访问你本地模型
curl http://127.0.0.1:51434/api/tags
如果能读取到模型列表,说明隧道搭建成功。
- 后续 DO 里的 Python 脚本、Claude Code 编写的程序直接调用
http://127.0.0.1:51434,等价于调用你本机的 LLaMA 模型接口。
默认关窗口就断连接,用 nohup 挂后台运行本地电脑执行:
nohup ssh -R 51434:127.0.0.1:11434 root@DOIP > tunnel.log 2>&1 &
隧道就在后台稳定运行,不占用终端窗口
可以把命令写入系统开机脚本,开机自动打通通道,无需手动执行
- 本地电脑防火墙:放行 11434 端口,允许本地程序访问
- DO 服务器防火墙:放行 51434 端口,默认 SSH 隧道内部访问无需额外放行
DO 虚拟机里的 Python 脚本,原本调用本地模型地址改成映射端口即可原本地调用写法
url = "http://127.0.0.1:11434/api/generate"
隧道打通后 DO 内调用写法
url = "http://127.0.0.1:51434/api/generate"
脚本正常收发 MUD 文本、拼接上下文记忆、请求模型决策,全部正常运行。
- 隧道断开重连后台进程掉线后,重新执行一次后台隧道命令即可恢复
- 端口冲突如果 51434 被占用,更换任意空闲端口,比如 61434,两端同步修改就行
- 网络延迟DO 海外节点访问国内本地模型会有小幅延迟,MUD 文字探险场景完全可以兼容
- 和内网穿透、端口映射区别反向隧道无需路由器设置、无需公网 IP,纯 SSH 命令实现,配置最简单,适合你当前跨云机调用本地模型的场景
如果你后续还有其他本地服务端口需要给到 DO,追加映射即可示例同时映射模型 + 调试端口
ssh -R 51434:127.0.0.1:11434 -R 5000:127.0.0.1:5000 root@DOIP