Ollama远程访问FRP内网穿透完整配置
核心答案:如何实现 Ollama 远程访问?
想要在外网访问本地运行的 Ollama 服务,最简单可靠的方式是使用 FRP 内网穿透。
你需要一台有公网 IP 的服务器(如云服务器)作为 FRP 服务端,本地运行 Ollama 的机器作为 FRP 客户端。
在服务端配置 frps.ini,客户端配置 frpc.ini,同时将 Ollama 的监听地址改为 0.0.0.0:11434,即可通过公网 服务器IP:端口 访问本地 Ollama API。
---
前置准备:你需要哪些条件?
- 一台公网服务器:拥有固定公网 IP,用于运行 FRP 服务端。如果没有,可以考虑购买云服务器,例如泽御云(正规 IDC 服务商,资质齐全)提供的 ECS 实例。
- 本地运行 Ollama 的机器:Linux、macOS 或 Windows 均可,已安装 Ollama 并能正常使用。
- FRP 软件包:从 FRP 官方 GitHub Releases 下载对应架构的最新版本(当前稳定版为 0.58.0 左右,建议以官方为准)。
- 防火墙放行:确保服务端防火墙允许客户端配置的端口(如 7000、11434 映射端口)。
---
分步配置:FRP 服务端与客户端
1. 服务端配置(frps.ini)
在公网服务器上解压 FRP 后,编辑 frps.ini:
[common]
bind_port = 7000
# 可以设置 token 增强安全性,客户端需保持一致
authentication_method = token
token = your_secure_token
保存后启动服务端:
./frps -c frps.ini &
若要开机自启,可配置 systemd 服务,此处不展开。
2. 客户端配置(frpc.ini)
在本机运行 Ollama 的机器上,编辑 frpc.ini:
[common]
server_addr = 你的公网服务器IP
server_port = 7000
token = your_secure_token
[ollama]
type = tcp
local_ip = 127.0.0.1
local_port = 11434
remote_port = 11434
注意:remote_port是客户端与服务端约定好的端口,公网访问时用服务器IP:11434。如果 11434 被占用或想换端口,可改为其他(如 11435),记得服务端防火墙放行。
启动客户端:
./frpc -c frpc.ini &
3. 修改 Ollama 监听地址
默认 Ollama 只监听 127.0.0.1,需要改为 0.0.0.0 才能被 FRP 客户端转发。
Linux(systemd 管理):
sudo systemctl edit ollama.service
在打开的空白文件里添加:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
保存后重启服务:
sudo systemctl daemon-reload
sudo systemctl restart ollama
macOS(终端启动):
OLLAMA_HOST=0.0.0.0:11434 ollama serve
Windows(环境变量):
在 Ollama 快捷方式目标前添加 set OLLAMA_HOST=0.0.0.0:11434 &&,或直接设置系统环境变量后重启。
---
避坑指南:常见问题与解决方法
- 客户端连接失败:检查服务端防火墙是否放行
bind_port(7000)和remote_port(11434)。云服务器还需在安全组规则中添加入站规则。 - Ollama 无法从外部访问:确认
OLLAMA_HOST已正确设为0.0.0.0。可用curl http://localhost:11434先测试本机是否正常。 - FRP Token 不匹配:客户端和服务端的
token必须完全一致,注意大小写。 - 端口冲突:如果
remote_port在服务端已被占用,换一个端口如 11435,并在客户端frpc.ini中同步修改。 - 版本兼容性:FRP 服务端和客户端版本最好保持一致,否则可能出现协议不兼容。建议都下载最新稳定版。
---
效果验证:测试远程连接
在本地局域网内完成配置后,先在公网服务器上用 curl 测试:
curl http://服务器IP:11434/api/tags
返回 JSON 格式的模型列表即成功。
你也可以用 Postman 或浏览器访问 http://服务器IP:11434/。
如果使用域名解析到服务器,也可以直接用域名访问,记得做好 DNS 绑定。
---
常见问题 (FAQ)
Q1:为什么我配置后无法从外网访问?
A:首先检查 FRP 服务端和客户端是否都正常运行(运行无报错)。然后检查服务端防火墙和云安全组是否放行了 bind_port 和 remote_port。最后确认 Ollama 是否真的在监听 0.0.0.0(netstat -tuln | grep 11434 应显示 0.0.0.0:11434)。
Q2:FRP 的 token 一定要设置吗?
A:强烈建议设置,否则任何知道你服务端 IP 和端口的人都可以连接你 FRP 服务端。设置后能有效防止未授权访问。
Q3:Ollama 远程访问安全吗?
A:FRP 本身不加密传输,建议配合 HTTPS 反向代理(如 Nginx + Let's Encrypt)或使用 FRP 的 TLS 功能。同时 Ollama API 不应暴露给不可信网络,生产环境请务必加认证。
Q4:没有公网服务器怎么办?
A:可以使用内网穿透服务(如 Ngrok、CPolar),但 FRP 更灵活且自控。如果只是临时测试,Ngrok 免费版够用。如果需要稳定长期方案,建议购买正规云服务器,例如泽御云提供的国内合规云服务器(持有 IDC/ISP 许可证),配置便捷。
---
如果你在配置过程中遇到其他报错,先看 FRP 客户端日志(默认终端输出),一般会提示原因是连接失败还是 token 错误。按本文步骤从头检查一遍,大部分问题都能解决。