1. 项目概述
最近在折腾一个很有意思的技术方案:如何让部署在云服务器上的OpenClaw应用调用本地Windows电脑运行的Ollama大语言模型。这个方案特别适合那些想在云端使用AI能力,但又希望保持模型本地化运行的用户。
核心思路其实很简单:通过内网穿透技术,将本地运行的Ollama服务暴露给云端服务器。这样既保证了模型数据的安全性(因为模型始终运行在你的本地电脑上),又能享受云端应用的便利性。整个过程涉及到几个关键技术点:
- 本地Ollama服务的配置与优化
- 稳定可靠的内网穿透方案实现
- OpenClaw与Ollama的对接配置
- GPU加速调优技巧
我花了差不多一周时间反复测试和优化这个方案,期间踩了不少坑,也积累了一些实用经验。下面就把这个方案的完整实现过程分享给大家,特别是那些和我一样想在云端使用本地AI模型的开发者们。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 本地Ollama环境配置
2.1 基础环境准备
首先需要在Windows电脑上安装并配置Ollama。安装过程很简单,直接从官网下载安装包即可。但有几个关键配置需要注意:
- 设置Ollama监听所有网络接口
- 配置跨域访问权限
这两个设置需要通过环境变量来完成。打开PowerShell,执行以下命令:
powershell复制# 设置监听所有IP
[Environment]::SetEnvironmentVariable("OLLAMA_HOST", "0.0.0.0:11434", "User")
# 允许跨域访问
[Environment]::SetEnvironmentVariable("OLLAMA_ORIGINS", "*", "User")
注意:修改环境变量后,必须完全重启Ollama服务才能生效。建议通过任务管理器结束所有Ollama相关进程,然后重新启动应用。
2.2 模型下载与管理
Ollama支持多种开源大语言模型,我测试了Qwen3.5系列的不同参数版本。对于大多数消费级显卡(如RTX 3060 12GB),建议使用2B参数的版本:
bash复制ollama pull qwen3.5:2b
下载完成后,可以通过以下命令验证模型是否可用:
bash复制ollama run qwen3.5:2b
如果模型能正常加载并响应,说明基础环境已经准备就绪。
3. 内网穿透方案实现
3.1 为什么选择FRP
要让云服务器访问本地Ollama服务,必须解决内网穿透问题。经过对比测试,我最终选择了FRP方案,主要基于以下几点考虑:
- 开源免费:FRP是GitHub上的开源项目,没有使用限制
- 配置灵活:支持TCP/UDP等多种协议转发
- 性能稳定:在实际测试中表现优于其他方案
- 安全性高:支持Token认证和加密传输
3.2 服务端配置(云服务器端)
- 从GitHub下载对应版本的FRP(Linux版本)
- 解压后编辑frps.toml配置文件:
toml复制bindPort = 7000
auth.token = "your_secure_password"
# 可选的管理面板配置
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin"
- 开放必要的防火墙端口:
bash复制ufw allow 7000/tcp # FRP通信端口
ufw allow 11434/tcp # Ollama服务端口
- 启动服务:
bash复制./frps -c frps.toml
3.3 客户端配置(本地Windows)
- 下载Windows版FRP并解压
- 编辑frpc.toml配置文件:
toml复制serverAddr = "your_server_ip"
serverPort = 7000
auth.token = "your_secure_password"
[[proxies]]
name = "ollama"
type = "tcp"
localIP = "127.0.0.1"
localPort = 11434
remotePort = 11434
- 启动客户端:
cmd复制frpc.exe -c frpc.toml
3.4 连接验证与原理
成功建立连接后,可以通过访问http://your_server_ip:11434/api/tags来验证服务是否可用。FRP的工作原理是:
- 内网客户端主动向外网服务器建立长连接
- 外网请求到达服务器后,通过这个长连接隧道转发到内网
- 内网服务响应后,数据原路返回
这种方案的优势在于不需要修改路由器设置,适合各种网络环境。但延迟会略高于直接连接,因为所有流量都需要经过服务器中转。
4. OpenClaw集成配置
4.1 基础配置
在云服务器上配置OpenClaw连接本地Ollama:
bash复制openclaw config
关键配置项:
- API Base URL:
http://127.0.0.1:11434/v1 - Model ID: 必须与本地模型名称完全一致(如
qwen3.5:2b)
4.2 模型兼容性注意事项
不是所有Ollama模型都能完美兼容OpenClaw。经过测试:
- Qwen3.5系列兼容性良好
- Deepseek-r1系列存在兼容问题
- Llama2系列需要额外配置
建议初次使用时选择Qwen3.5系列模型,确保基本功能可用后再尝试其他模型。
5. GPU加速优化
5.1 模型运行状态检查
通过以下命令查看模型运行设备:
bash复制ollama ps
如果输出为空,需要先启动模型:
bash复制ollama run qwen3.5:2b
5.2 GPU层数优化
Ollama默认可能不会将所有模型层都加载到GPU。通过查看日志可以确认:
log复制# 查看日志中的offloaded信息
time=2026-03-29T18:12:38.363+08:00 level=INFO source=ggml.go:494 msg="offloaded 24/25 layers to GPU"
可以通过两种方式优化:
交互式设置:
bash复制/set parameter num_gpu 25
修改模型配置文件:
- 导出模型配置:
bash复制ollama show qwen3.5:2b --modelfile > Modelfile
- 添加参数:
text复制PARAMETER num_gpu 25
- 创建新模型:
bash复制ollama create qwen3.5-2b-gpu -f Modelfile
5.3 显存不足处理
当模型参数过大导致显存不足时:
- 尝试减小num_gpu值
- 换用更小的模型版本
- 部分层使用CPU计算(性能会下降)
例如,对于4B参数的模型,可以尝试:
bash复制/set parameter num_gpu 32 # 而不是默认的999
6. 常见问题排查
6.1 连接失败问题
如果OpenClaw无法连接Ollama:
- 确认Ollama服务正在运行
- 检查FRP连接状态
- 验证防火墙设置
- 测试直接访问
http://server_ip:11434/api/tags
6.2 性能优化建议
- 使用有线网络连接代替WiFi
- 关闭不必要的后台程序
- 定期清理Ollama缓存
- 根据实际使用情况调整模型参数
6.3 安全注意事项
- 定期更换FRP的认证token
- 限制可访问的IP范围
- 不要使用默认的管理员账号密码
- 考虑启用TLS加密
7. 方案优势与局限
经过实际使用,这个方案有几个明显的优势:
- 数据隐私:模型始终运行在本地
- 成本效益:不需要购买昂贵的云GPU
- 灵活性:可以随时切换不同模型
但也存在一些限制:
- 依赖本地电脑的持续运行
- 网络延迟会影响响应速度
- 本地GPU性能可能成为瓶颈
对于需要7×24小时可用的场景,建议考虑将方案改进为:
- 使用旧电脑或小型服务器作为本地计算节点
- 配置自动唤醒和重连机制
- 设置备用连接通道
我在实际使用中发现,对于日常开发和小规模应用,这个方案已经足够稳定可靠。特别是当需要处理敏感数据时,本地化运行大模型带来的安全感是云服务无法比拟的。
