跨境独立站宝塔面板服务器Ollama远程访问穿透方案
为什么需要穿透方案
运行在服务器上的 Ollama 默认只监听本地回环地址,无法从外网直接访问。
对跨境独立站运营者来说,你很可能需要把 Ollama 提供的 AI 能力集成到业务中,例如生成商品描述、翻译文案或自动化客服。
这时,一个安全、稳定的远程访问穿透方案就成了刚需。
本文将使用 Cloudflare Tunnel —— 无需公网 IP,无需开放端口,利用 Cloudflare 全球网络加密转发请求,对零基础用户非常友好。
准备工作
在开始操作前,确认以下几项准备到位:
- 一台安装了宝塔面板的服务器(Linux 系统,建议 CentOS 7+ 或 Ubuntu 20.04+)。
- 一个托管在 Cloudflare 的域名(可以在 Cloudflare 官网免费注册或添加已有域名)。
- SSH 客户端(Windows 用 PuTTY / Xshell,Mac 或 Linux 直接用终端)。
- 基本的宝塔面板操作权限(能进入后台)。
如果服务器在国内,请确保域名已经完成备案;
若服务器在海外,可跳过备案直接使用 Cloudflare 免费套餐。
在宝塔服务器上安装 Ollama
- 通过 SSH 登录服务器,执行官方安装命令:
curl -fsSL https://ollama.com/install.sh | sh
安装过程会自动下载二进制文件并配置环境变量。
安装完成后,你可以先在本机测试一下:
ollama pull llama3.2
ollama run llama3.2
如果能看到模型对话界面,说明安装成功。
- 为了让 Ollama 能被 Cloudflare Tunnel 转发,需要将其监听地址改为
0.0.0.0:11434。编辑 Ollama 的系统服务文件:
sudo systemctl edit ollama.service
在打开的编辑框中,添加以下覆盖内容:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
保存并退出编辑后,重启服务:
sudo systemctl daemon-reload
sudo systemctl restart ollama
验证监听状态:
ss -tlnp | grep 11434
如果看到 0.0.0.0:11434 条目,说明监听成功。
- 回到宝塔面板,确认服务器防火墙已放行 11434 端口(虽然 Cloudflare Tunnel 不需要公网端口,但放行能方便你从内网测试)。在宝塔“安全”标签页中,添加端口规则,允许 11434,来源可填写
0.0.0.0/0,策略为“放行”。也可以不放行,仅通过 Tunnel 访问。
配置 Cloudflare Tunnel 实现远程访问
- 登录 Cloudflare 控制台(dash.cloudflare.com),选择你要使用的域名。
- 进入左侧菜单 Zero Trust -> Access -> Tunnels,点击 Create a tunnel。
- 输入 Tunnel 名称,例如
ollama-tunnel,然后选择 Cloudflared 作为创建方式。点击 Next。 - 页面会给出安装
cloudflared的命令。在你的 SSH 终端中执行该命令(根据服务器架构选择对应版本,通常 Linux 64 位使用cloudflared-linux-amd64)。安装完成后,执行界面上的 Run the following command to connect the tunnel,例如:
cloudflared tunnel run <你的-tunnel-id>
若命令返回 Started tunnel xxx 说明连接成功。
- 继续在网页上配置 Public Hostname。填写:
- Subdomain:例如
ollama - Domain:选择你的域名
- Type:HTTP
- URL:
localhost:11434
点击 Save hostname。
现在你的 Tunnel 已经将 ollama.你的域名.com 映射到了服务器本地的 Ollama 服务。
- (可选)如果你希望更安全,可以在 Cloudflare 的 Access 应用中添加身份验证,只有通过邮箱或 SSO 的用户才能访问。
常见问题与避坑指南
Q1:安装 cloudflared 时报错“command not found”
可能是路径未加入 $PATH。
解决方法:使用绝对路径运行,例如 /usr/local/bin/cloudflared tunnel run ...,或者运行 sudo cp cloudflared /usr/local/bin/ 手动复制。
Q2:Tunnel 能连接但访问返回 502
通常因为 Ollama 没有监听 0.0.0.0 或者防火墙阻止了本机到 11434 的请求。
请检查 OLLAMA_HOST 是否配置正确,以及 ss -tlnp 确认监听地址。
另外,在服务器本地使用 curl http://127.0.0.1:11434 测试能否返回 Ollama is running 类似的响应。
Q3:跨境访问速度不理想
Cloudflare Tunnel 默认走公网路由,对部分海外区域延迟较低。
如果效果不佳,可尝试在 Cloudflare 面板开启 Argo Smart Routing(需付费),或者更换到距离你的用户群体更近的服务器。
🔧 避坑提醒
- 不要将 Ollama 直接暴露到公网:即使只放行端口到 Cloudflare IP 段,也不推荐,因为存在历史漏洞。使用 Tunnel 加密传输更安全。
- 宝塔面板的防火墙:如果服务器上开启了系统防火墙(firewalld 或 ufw),记得也放行 cloudflared 所需要的出站连接(默认已允许)。
- Ollama 模型占用内存:根据你的服务器内存大小选择合适的模型,例如 7B 参数模型需要约 8GB 内存。
验证访问与后续使用
- 打开浏览器,访问
http://ollama.你的域名.com(注意是 HTTP,因为 Tunnel 会自动在 Cloudflare 边缘处理 HTTPS 证书)。你应该看到 Ollama 返回的纯文本响应:Ollama is running。 - 使用 curl 测试 API 调用:
curl http://ollama.你的域名.com/api/generate -d '{
"model": "llama3.2",
"prompt": "你好,用中文简单介绍一下自己。"
}'
如果能返回流式 JSON,说明远程访问完全可用。
- 现在你可以将 API 集成到跨境独立站的业务逻辑中,无需再担心内网限制。
如果你希望更精细地控制访问权限,
建议在 Cloudflare 的 Access 策略中添加邮件验证或 Google Workspace 登录,
这样只有授权的用户才能调用 Ollama 接口。
完成以上步骤后,你的跨境独立站就拥有了一个由 Ollama 驱动的 AI 服务,且通过宝塔面板和 Cloudflare Tunnel 实现了安全、稳定的远程访问。
遇到问题欢迎在评论区留言交流。
延伸阅读:如何在宝塔面板上用 Nginx 反向代理 Ollama(适合已申请公网 IP 的环境)。