Ollama本地部署实战:为OpenClaw省钱配置局域网API
如果你跟我一样日常把 AI 助手当“半个员工”用——写周报、改代码、翻译文档、批量处理文本大概率也会撞上同一个痛点云端模型的计费肉眼可见地涨。我原来不怎么在意觉得每次调用就几分钱直到一个月底拉账单光 API 调用就花掉大几十块那一刻就下定决心得把这些高频任务挪到本地来。这个“省钱计划”的核心很简单把 OpenClaw 这类工具的推理后端从云端模型换成 Ollama 本地部署的开源模型。用下来发现只要电脑内存和显存不算太差本地模型的日常表现完全够用而且从安装、拉模型、改配置到局域网内其他设备也能调用整条链路并不复杂只是有几个配置细节容易踩坑。这篇文章就把我实际落地的完整过程记录下来从软硬件准备到模型选择再到局域网 API 的配置与排错尽量做到你跟着操作一遍就能跑通。文章适合三类人一是个人开发者想给本机 AI 工具接一个免费的推理后端二是小团队想把大模型能力共享到办公室局域网内的几台机器三是单纯被云端 API 账单吓到想找一条低成本替代路线的朋友。1. 省钱逻辑与方案选型本地推理比想象中划算1.1 算清楚账单才知道省在哪先说一个容易忽略的事实云端模型计费是按 token 算的不是按“次”算的。你每一次对话、每一次代码补全背后都是一堆上下文 token 在同时计费。我自己的使用习惯是每天大概四五十次调用每次平均两千 token 左右。按中等档位的模型单价粗算一下一天下来就要三四块钱一个月就是小一百块。如果你的用途偏重代码生成、长文档处理一次调用轻松上万 token账单会涨得更快。而本地部署模型的边际成本几乎为零。Ollama 把模型文件拉到本地硬盘之后每次推理消耗的只是电费和硬件损耗。就算为了跑模型专门配一台有 16G 内存、8G 显存的主机一次性投入也就是几百到一千块用两三个月就回本了。更别说很多人手头本就有配置还行的电脑。1.2 Ollama 凭什么被选中其实能跑本地大模型的工具不止一个我先后试过几类方案最后留下的确实是 Ollama。Ollama最大的优势是“开箱即用”。模型管理做得极简一条命令就把模型拉下来自动处理量化版本、依赖、服务注册这些问题还为外部应用提供了标准接口。llama.cpp性能调优空间最大但需要自己编译、自己写启动脚本不折腾不舒服的人可以选日常使用者会嫌烦。text-generation-webui功能非常全浏览器界面、训练、插件都有但对个人用户来说太重了显存占用也比 Ollama 高不少。vLLM吞吐能力很强适合服务端高并发场景但对硬件和 CUDA 环境要求高个人跑纯属杀鸡用牛刀。Ollama 之所以适合 OpenClaw 这种交互式工具是因为它默认就暴露两个接口一个是原生的/api/chat另一个是兼容主流云端接口规范的/v1/chat/completions。OpenClaw 只需要改一个 base_url就能从云端模型平滑切到本地模型几乎不需要改业务代码。1.3 OpenClaw 接上本地模型玩法立刻不一样OpenClaw 本身是一个开源 AI 工具壳真正干活的是背后的大模型。默认情况下它走云端 API好用是好用但代价就是你得持续付费。把推理换到本地之后至少带来三个直接好处。第一是省钱这一点不用多说。第二是隐私代码、文档这类敏感内容不再需要上传到外部服务器完全在本机流转对很多场景来说这点很关键。第三是稳定性本地服务只要机器不关机随时可用没有云端限流、网络抖动、接口版本升级这些幺蛾子。当然本地模型的上限确实比不上顶级云端模型尤其在复杂逻辑推理和跨领域泛化上差距明显。但如果你主要用它做代码补全、文本总结、格式转换、中英互译这类任务一个 7B 参数的量化模型已经能交出相当漂亮的答卷。想明白这个取舍整个省钱计划就站得住脚了。2. 环境准备与 Ollama 安装实操2.1 硬件底线先看显存和内存安装之前先对自己的机器做个评估不然拉了模型跑不动白费功夫。以我的经验判断标准其实不复杂就看两个数字显存和内存。模型规模建议显存建议内存实际体验3B 量化版4GB 以上16GB非常流畅适合日常对话和轻量任务7B 量化版8GB 以上16GB流畅代码和总结类任务的主力14B 量化版12GB 以上32GB能跑但响应偏慢适合不赶时间的任务30B 以上24GB 以上32GB个人使用性价比很低不建议尝试如果你的机器没有独立显卡但有 32GB 内存也能靠 CPU 跑模型只是速度会慢不少。我试过在一台纯 CPU 的办公机上跑 7B 模型生成一段二百字的总结大约要等上一两分钟能接受的话也不是不行。2.2 三种系统的安装过程Ollama 的安装本身非常省事不同系统略有区别我逐个说。Windows官方给出的方式有两种。一种是从官网下载安装包双击一路下一步安装完系统托盘会出现 Ollama 图标。另一种是用命令装winget install Ollama.Ollama装完建议打开 PowerShell 跑一下ollama --version能输出版本号就说明装好了。Windows 版会把 Ollama 注册成系统服务但如果你修改了环境变量需要到系统托盘右键退出一遍再重新打开服务才会以新配置重启。Linux最常用的是官方的一键安装脚本curl -fsSL https://ollama.com/install.sh | sh脚本会自动安装命令行工具、下载模型所需的依赖并注册 systemd 服务。装好之后先启动服务systemctl start ollama systemctl enable ollama用ollama --version验证一下如果命令行找不到命令重启终端或者执行source /etc/profile刷新路径。macOS有 Homebrew 的话很简单brew install ollama装完直接ollama serve启动服务。macOS 也可以开个新终端窗口继续操作服务进程会一直常驻。2.3 模型拉取先选对模型再动手Ollama 装好之后下一步就是拉模型。官方仓库里有大量模型可选但千万别一上来就拉最大的。“我全都要”的后果往往是硬盘被塞满、显存被撑爆然后啥都跑不动。我建议按用途来选目前用过比较稳的组合有两套。日常综合场景中文输入比较多的话首选 Qwen 系列。我自己用下来最顺手的是qwen2.5:7b中文理解力强写总结、做翻译、改文案都够用。如果机器配置比较紧张可以从qwen2.5:3b起步响应飞快只是长文本推理能力弱一些。偏代码场景目前开源模型里比较能打的是 Code 系列。我实测qwen2.5-coder:7b在 Python、JavaScript、SQL 的补全和解释上表现相当不错比自己硬堆一个大号通用模型要划算得多。拉取命令很简单ollama pull qwen2.5:7b想测试一下模型能不能正常聊天直接跑ollama run qwen2.5:7b进入交互界面后随便聊一句有正常输出就说明模型和推理链路都没问题。用ollama list可以查看本地已经有哪些模型后面写接口配置的时候会用到精确的模型名称。这里补充一个概念Ollama 默认拉取的是量化版本也就是把模型权重压缩后存储。量化等级用 Q4_K_M、Q8_0 这类标记Q4 文件更小、速度更快Q8 更接近原版效果。Ollama 已经帮你选好了平衡点日常不用过多纠结。3. 局域网 API 调用配置全记录3.1 解开 OLLAMA_HOST 这个关键变量Ollama 装好之后默认只监听本机回环地址也就是127.0.0.1:11434。这个设计很安全但意味着同一局域网里的其他设备根本访问不到。要让手机、同事的电脑、另一台服务器都能调用必须改动一个环境变量OLLAMA_HOST。它的作用就是告诉 Ollama“你的服务应该绑在哪个地址上”。设成0.0.0.0:11434意思是监听本机所有网卡地址局域网内的其他设备就能通过你的局域网 IP 访问到 11434 端口。Linux 上推荐用 systemd 来配置环境变量systemctl edit ollama编辑窗口里写入[Service] EnvironmentOLLAMA_HOST0.0.0.0:11434保存后重载并重启服务systemctl daemon-reload systemctl restart ollamaWindows 上通过图形界面设置环境变量右键“此电脑” → 属性 → 高级系统设置 → 环境变量。在系统变量里新建一个变量名OLLAMA_HOST 变量值0.0.0.0:11434然后到系统托盘退出 Ollama重新启动。如果你是直接用后台服务方式跑的到服务管理器里重启 Ollama 服务也可以。macOS 用 launchctl 设置launchctl setenv OLLAMA_HOST 0.0.0.0:11434然后重启一下 Ollama 进程。3.2 从本机到局域网的连通性验证改了环境变量之后先别急着配 OpenClaw把网络链路测通是更稳的做法。在本机执行curl http://127.0.0.1:11434/api/tags能返回一段 JSON里面带模型列表说明服务本身正常。接着查看本机的局域网 IP。Windows 用ipconfig在输出里找“IPv4 地址”Linux 用hostname -I第一段数字一般就是局域网地址。假设查出来是192.168.1.100那么就在本机再验证一次curl http://192.168.1.100:11434/api/tags这一步很重要它能确认服务确实绑定到了局域网网卡上。如果这里都通不了大概率还是OLLAMA_HOST没生效。本机通了之后拿另一台设备测。手机和电脑连同一个 WiFi浏览器直接打开http://192.168.1.100:11434能看到Ollama is running的提示就基本稳了。命令行的话也可以这样测curl http://192.168.1.100:11434/api/tags3.3 OpenClaw 的模型接入配置OpenClaw 接上游模型的时候走的是标准接口协议。Ollama 提供了跟云端大模型 API 同格式的端点路径是/v1/chat/completions所以 OpenClaw 那边只需要把 base_url 指到 Ollama 的地址模型名写成你ollama list里看到的准确名称就能连通。我这里给你一个通用的配置示意model: provider: openai-compatible base_url: http://192.168.1.100:11434/v1 api_key: ollama model: qwen2.5:7b options: temperature: 0.7 num_ctx: 8192几个要点说一下。api_key这一项可以随便填一个非空字符串比如ollama因为本地服务不做鉴权但 OpenClaw 的接口客户端往往会强制要求这个字段不能为空。base_url注意结尾要带/v1很多人漏了这个后缀导致一连串 404。model必须和ollama list里的名字完全一致比如qwen2.5:7b中间有冒号不能随便改。保存配置后重启 OpenClaw随便发一条指令测试。如果 OpenClaw 的界面里能看到流式回复或者正常回话就说明整个链路已经打通了。如果想直接用命令行验证接口可以发一个完整请求curl http://192.168.1.100:11434/v1/chat/completions \ -H Content-Type: application/json \ -d { model: qwen2.5:7b, messages: [{role: user, content: 你好用一句话介绍你自己}], stream: false }返回 JSON 里出现content字段就说明接口没问题。4. 踩坑实录常见问题与排查方法整个部署过程虽然不长但我在实操中确实踩过不少坑。下面把比较典型的几个问题整理出来方便你对照排查。现象常见原因解决办法局域网其他设备访问超时防火墙拦截了 11434 端口在主机防火墙中放行该端口改了 OLLAMA_HOST 但局域网仍不通环境变量修改后服务没重启退出 Ollama 重新启动或 systemctl restart调用接口返回 404base_url 少了 /v1 后缀把地址改成http://IP:11434/v1OpenClaw 报 401 鉴权失败api_key 留空或缺失随便填一个非空字符串模型响应特别慢模型偏大或上下文长度过长换更小模型或调低 num_ctx显存不足或直接报错模型太大或同时加载了多个模型选择量化版本设置 OLLAMA_MAX_LOADED_MODELSWindows 下 curl 测试异常PowerShell 中 curl 是别名改用 curl.exe 再试4.1 局域网访问失败最常见的拦路虎其实是防火墙。Linux 上如果开了 firewalld需要放行端口firewall-cmd --permanent --add-port11434/tcp firewall-cmd --reloadWindows 系统弹窗询问是否允许 Ollama 访问网络时如果选了“取消”局域网访问就直接被掐断了。去“Windows 安全中心”里手动加一条入站规则放行 TCP 11434 端口即可。还有一个容易忽略的点确认测试设备真的在同一网段。有些办公室网络开了访客隔离手机连着 WiFi 是访客网络和电脑所在网络并不互通。先测ping 192.168.1.100通了再谈端口。4.2 配置不生效与运行报错如果你改完OLLAMA_HOST发现curl 127.0.0.1:11434通但局域网 IP 不通多数情况是配置没被重新加载。Ollama 不会热加载环境变量Windows 托盘里退出再开或者 Linux 里systemctl restart ollama这是最常见的解法。还有一类报错是 OpenClaw 返回 404。这个问题基本可以锁定在 base_url 的写法上http://IP:11434/v1和http://IP:11434完全是两回事。先手动 curl 一下/v1/chat/completions就能分清到底是服务没起还是路径不对。4.3 性能与显存问题本地模型的性能瓶颈多半不在模型本身而在上下文长度。Ollama 默认的num_ctx是 4096如果你把配置里的num_ctx拉高到 32768显存占用会成倍上涨7B 模型甚至可能直接跑爆 8G 显存。我的建议是日常任务 8192 足够只有跑长文档分析才临时调高。另外如果同时在一台机器上加载多个模型显存会被瓜分干净。可以通过环境变量OLLAMA_MAX_LOADED_MODELS1限制同时最多加载一个模型让它自动在模型之间切换避免直接被 OOM 干掉。5. 性能调优与下一步扩展5.1 Ollama 运行参数调优链路通了之后想用得舒坦还得调几个参数。OLLAMA_KEEP_ALIVE控制模型在内存中的驻留时长默认是 5 分钟。如果你每隔几分钟就会发一次请求模型反复被卸载再加载每次都要重新等加载会明显感觉“首字延迟”变长。我习惯设成1hsystemctl edit ollama写入[Service] EnvironmentOLLAMA_KEEP_ALIVE1h如果你的显存宽裕也可以直接设成-1表示模型一直驻留。OLLAMA_NUM_PARALLEL控制同时间并行处理的请求数量默认是 1。OpenClaw 如果经常多任务并发调用可以尝试设为 2 或 4。但要注意并行请求数上去了显存占用也会同步上升。5.2 OpenClaw 侧请求策略设置OpenClaw 这边也有几个值得调整的点。本地模型响应速度比云端慢所以请求超时要放宽设置到 120 秒以上比较稳妥。平时如果不需要逐字输出效果可以关掉流式输出。还有一个容易被忽略的细节采样参数。云端模型对temperature默认值设置往往偏高本地小模型在temperature过高时容易“放飞自我”编造事实、前后矛盾。我一般把temperature压到 0.6 到 0.7代码类任务甚至可以到 0.2 左右输出质量会稳定很多。5.3 长期运行方案与安全提示如果你打算让 Ollama 长时间运行最简单的方案就是用 Docker 部署。官方也提供了镜像docker run -d --gpusall \ -v ollama:/root/.ollama \ -p 11434:11434 \ --name ollama \ ollama/ollama容器方式的好处是环境隔离卸载、升级、换机迁移都方便配合 Compose 文件管理起来更有条理。最后必须提醒一句Ollama 默认没有鉴权机制谁拿到你的局域网地址都能直接调用。所以务必只在可信的内网环境中开放服务不要把 11434 端口直接映射到公网。如果确实需要远程用优先考虑在系统层面套一层访问控制比如只允许特定来源 IP 连接或者配合内网网关做统一授权。结尾这套“OpenClaw 省钱计划”我已经实际跑了两个多月最大的改变是再也不用半夜收到扣费短信了。现在我的配置是代码类任务走qwen2.5-coder:7b日常对话和文字处理走qwen2.5:7b手机上偶尔临时查资料也能直接连家里那台机器体验几乎和云端模型没有差别。最后再分享一个小技巧调试阶段不要光看 OpenClaw 的报错信息先用 curl 直接打 Ollama 接口能非常快地定位问题到底出在服务端还是配置端。等配置稳定下来了建议把OLLAMA_HOST的修改记录和模型列表一起写进 README方便以后换了机器一键恢复这套环境。