Ollama搭配OneAPI内网穿透公网访问方案

为什么需要这个方案?

很多人在本地跑Ollama加载了Llama、Qwen等大模型,想通过API让外部应用调用。
但本地网络没有公网IP,无法直接访问。
这时就需要内网穿透工具把Ollama的API端口映射到公网。
如果再搭配OneAPI,你还可以统一管理多个模型端点、设置访问密钥和速率限制,更方便暴露给线上服务。

本文使用frp作为内网穿透工具,零基础也能按步骤完成。

搭建前需要准备什么?

  • 一台有公网IP的服务器(云服务器或VPS),用于运行frp服务端。
  • 一台内网机器(你的本地电脑或NAS),运行Ollama、OneAPI和frp客户端。
  • 域名(可选,但推荐)用于配置访问地址,避免每次记IP。
  • frp最新版(从GitHub Releases下载),服务端和客户端版本一致。
  • 已安装Ollama(官网安装脚本)和OneAPI(GitHub项目)。

详细配置过程:从Ollama到OneAPI再到frp穿透

第一步:确认Ollama和OneAPI正常启动

在内网机器上启动Ollama并拉取模型(比如qwen2.5:7b):

ollama pull qwen2.5:7b
ollama serve

Ollama默认监听 127.0.0.1:11434
如果要让OneAPI调用,需要改为监听 0.0.0.0
修改方法:设置环境变量或修改systemd服务文件。
最方便的做法是运行:

# 停止Ollama服务
systemctl stop ollama  # 如果通过systemd管理
# 或者直接kill进程
# 然后设置环境变量并重启
OLLAMA_HOST=0.0.0.0 ollama serve &

再用 curl http://127.0.0.1:11434/api/tags 确认可访问。

下一步安装OneAPI。
推荐用Docker:

docker run --name one-api -d --restart always -p 3000:3000 -v /root/one-api:/data justsong/one-api

访问 http://localhost:3000 完成初始化,添加一个渠道,类型选“Ollama”,地址填 http://主机IP:11434(如果不通可填 http://localhost:11434),密钥留空。
然后创建一个令牌备用。
OneAPI默认端口是3000。

第二步:配置frp服务端

将frp上传到公网服务器,解压后编辑 frps.toml

[common]
bind_port = 7000
vhost_http_port = 8080   # 用于HTTP代理的端口,后续访问用这个端口
# 可选设置token增加安全性
authentication_method = token
token = 你的安全密钥

启动服务端:

./frps -c frps.toml &

确认监听端口正常:ss -tlnp | grep 7000

第三步:配置frp客户端并暴露OneAPI

在内网机器上传frp客户端,编辑 frpc.toml

[common]
server_addr = 你的公网IP
server_port = 7000
token = 你的安全密钥

[one-api]
type = http
local_ip = 127.0.0.1
local_port = 3000
custom_domains = oneapi.你的域名.com   # 你需将域名解析到公网IP
# 如果不用域名,可以改为 type = tcp,remote_port = 8080,但HTTP请求不方便

启动客户端:

./frpc -c frpc.toml &

如果还要暴露Ollama原始端口(直接绕过OneAPI),可以再加一节:

[ollama]
type = tcp
local_ip = 127.0.0.1
local_port = 11434
remote_port = 11434   # 公网服务器上的端口,注意防火墙放行

第四步:配置防火墙和域名解析

  • 公网服务器防火墙开放7000(frp控制端口)、8080(HTTP代理端口)、11434(如果用了tcp穿透)等端口。
  • 添加域名解析A记录指向公网IP。

容易踩的坑和解决方法

  • Ollama绑定127.0.0.1导致无法被OneAPI访问:一定要设置 OLLAMA_HOST=0.0.0.0
  • frp连接失败:检查公网IP是否写对,token是否一致,防火墙是否放行7000端口。在客户端加 log_file = ./frpc.log 查看日志。
  • OneAPI接口返回502:说明OneAPI无法连通Ollama,检查Ollama地址是否填错,或者Ollama未绑定0.0.0.0。
  • 公网访问超时:可能域名未解析或解析未生效,用 curl -H "Host: oneapi.你的域名.com" http://公网IP:8080 测试。
  • OneAPI令牌无效:在OneAPI后台重新生成令牌,确认在请求头添加 Authorization: Bearer 你的令牌

如何验证公网访问是否成功?

本地(或任意一台能联网的机器)执行:

# 通过OneAPI调用模型(域名方式)
curl http://oneapi.你的域名.com:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer 你的OneAPI令牌" \
  -d '{"model": "qwen2.5:7b", "messages": [{"role": "user", "content": "你好"}]}'

如果能正常返回JSON结果,说明整个方案成功。
也可以直接在浏览器输入 http://你的域名:8080 打开OneAPI登录页面。

常见问题解答

Q:必须用frp吗?能用其他内网穿透工具吗?
A:可以,比如Ngrok、Natapp、ZeroTier等。但frp自建更稳定,可控性高。

Q:OneAPI的端口只暴露HTTP代理,有没有安全问题?
A:OneAPI本身有令牌校验,建议开启HTTPS(使用frp的HTTPS插件或前置Nginx),并设置强密码。

Q:Ollama需要暴露原始端口吗?
A:不需要,OneAPI作为中间层就够了,更安全。

Q:公网服务器配置最低多少?
A:frp消耗极小,1核1G足够,主要看网络带宽。

如果你正在处理Ollama搭配OneAPI内网穿透公网访问方案,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
AI中转站限流防刷GPU算力耗尽配置
下一篇
个人搭建AI中转售卖Token合规边界讲解
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意