大模型工具神器-——Ollama 外网穿透完全指南:从部署到踩坑实录

标签:Ollama, 内网穿透, NATAPP, 大模型部署, 踩坑


一、为什么需要外网穿透?

在家用显卡部署了 DeepSeek、Qwen 等大模型后,总想在公司、咖啡厅或手机上随时调用。但家庭宽带没有公网 IP,这就得靠内网穿透工具把 localhost:11434 映射到公网。本文记录完整部署流程,并分享一个坑了我两小时的「协议陷阱」。


二、完整部署步骤(3 步走)

Step 1:让 Ollama 监听所有网卡

默认安装后,Ollama 可能只监听 127.0.0.1,局域网都无法访问,更别提穿透。

操作

  1. 右键托盘图标,Quit Ollama(完全退出)

  2. 设置系统环境变量(Windows 示例):

    变量名:OLLAMA_HOST
    变量值:0.0.0.0:11434
    

    设置路径:控制面板 → 系统 → 高级系统设置 → 环境变量 → 系统变量 → 新建

  3. 重启 Ollama 服务

ollama serve

验证

# 在局域网另一台机器测试
curl http://192.168.1.xxx:11434/api/tags

能返回模型列表即成功 。


Step 2:配置内网穿透隧道(以 NATAPP 为例)

市面上工具很多(花生壳/cpolar/ngrok),原理相同,这里用 NATAPP 演示。

操作流程

  1. 注册 & 下载客户端:https://natapp.cn/

  2. 购买免费隧道:控制台 → 购买隧道 → 免费隧道

  3. 配置关键参数

    • 本地端口:11434
    • 本地 HTTPS务必关闭
    • 远程端口:随机或指定(付费)

    ⚠️ 踩坑预警本地 HTTPS 不是给公网加证书,而是让 NATAPP 用 HTTPS 协议访问你本地的 Ollama!由于 Ollama 只支持 plain HTTP,开启此选项会导致协议握手失败,返回 Empty reply from server
    在这里插入图片描述

  4. 启动客户端

    natapp -authtoken=你的Token
    

    获得公网地址:http://learn.nat100.top


Step 3:验证公网访问

# 正确输出
C:\Users> curl http://learn.nat100.top/api/tags
{"models":[{"name":"qwen3-vl:8b","model":"qwen3-vl:8b","modified_at":"2025-12-25T03:16:29.1726812+08:00",...}]}

如果报 Empty reply from server,立即检查本地 HTTPS 是否关闭。


在这里插入图片描述

三、踩坑实录:Empty reply from server 的排查血泪史

问题现象

本地访问畅通无阻,公网域名却返回:

curl: (52) Empty reply from server

错误特征分析

  • 隧道在线:NATAPP 后台显示绿色在线,流量计数增加
  • 能建连:不是 Connection refused,说明端口通了
  • 无响应:服务端接收请求后直接断开,没返回数据

根因定位

经过两小时排查,锁定 NATAPP 的「本地 Https」开关。开启后,NATAPP 会用 https://127.0.0.1:11434 访问 Ollama,但 Ollama 仅支持 HTTP,SSL 握手失败,直接断开连接。

解决方案

关闭「本地 Https」开关,使 NATAPP 以纯 TCP/HTTP 方式转发流量。修改后立即生效,公网访问成功 。


四、扩展:部署 Open-WebUI 界面

如需网页交互,可再部署 Open-WebUI 并穿透 8080/3000 端口:

pip install open-webui
open-webui serve --port 8080

穿透配置

  • 本地端口:8080
  • 本地 HTTPS:关闭(同样陷阱)
  • 浏览器访问:http://你的域名:端口

五、安全加固建议

Ollama 默认无鉴权,公网暴露极其危险!

措施 操作 推荐度
隧道密码 NATAPP/cpolar 控制台开启「访问验证」 ⭐⭐⭐⭐⭐
IP 白名单 限制只允许指定 IP 访问隧道 ⭐⭐⭐⭐
Web 认证 Open-WebUI 设置登录账号密码 ⭐⭐⭐⭐
Nginx 反向代理 加一层 basic_auth 鉴权(高阶) ⭐⭐⭐
用完即停 不需要时关闭隧道,减少攻击面 ⭐⭐⭐⭐⭐

六、一键总结:5 分钟速查表

# 1. 配置 Ollama 监听所有网卡
OLLAMA_HOST=0.0.0.0:11434
# 可选:解决跨域问题
OLLAMA_ORIGINS=*

1. 让 Ollama 监听所有网卡
export OLLAMA_HOST=0.0.0.0:11434
ollama serve
2. 花生壳客户端新增映射
内网 127.0.0.1:11434  →  固定 https 域名
3. 远程调用
curl https://<你的域名>/api/chat -d '{"model":"deepseek-r1:1.5b","messages":[{"role":"user","content":"hello"}]}'

# 2. NATAPP 配置
本地端口:11434
本地 HTTPS:❌ 关闭
协议:HTTP / TCP

# 3. 验证
curl http://你的域名/api/tags

# 4. 安全
务必开启隧道访问密码!

七、其他穿透工具对比

工具 免费额度 固定域名 延迟 备注
NATAPP 1 条/月 1Mbps 二级域名 国内低 配置简单,有上述协议坑
花生壳 1 条/永久 三级域名 国内低 老牌稳定,教程多
cpolar 1 条/永久 随机域名 中等 需安装本地服务
ngrok 2h 后随机 临时域名 国外高 开源,适合测试

八、结语

内网穿透本身不复杂,但魔鬼藏在细节里。这次教训让我明白:每个开关的含义必须吃透,不能凭感觉乱点。希望这篇「部署+踩坑」实录能帮你一步到位,少熬点夜。

原创不易,转载请注明出处。


参考资源

  • Ollama 官方文档
  • NATAPP 使用指南
  • 花生壳 Ollama 教程
  • cpolar 配置案例
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐