很多人第一次配客户端时卡在「Ollama 的 API key 在哪」这一步:翻遍设置页、配置文件、环境变量都没找到,于是怀疑自己装错了版本。这篇先把一个前提说清——Ollama 本地服务默认不发放也不校验 API key,然后用一套排查顺序,帮你分清「我要的其实是本地服务地址」还是「我真的需要一层鉴权」。
很多人第一次配客户端时卡在「Ollama 的 API key 在哪」这一步:设置页翻遍、配置文件翻遍、环境变量也翻遍,就是找不到,于是开始怀疑自己是不是装错了版本。先把一个前提说清楚——本地跑的 Ollama 默认既不发放也不校验 API key,所以「找 key」这个动作本身可能就没有对象。你真正要确认的,是客户端到底在问你要地址还是要凭据。
这篇给一套排查顺序,帮你分清两种完全不同的情况:一种是你其实缺的是本地服务地址和模型名,另一种是你真的需要在外层补一层鉴权。两种情况的解决路径差别很大,先分清再动手,比反复重装省时间。
先确认一件事:本地 Ollama 默认不发 key
Ollama 以本地服务的形式跑在你自己机器上,默认只监听本机回环地址,不生成也不校验密钥。这意味着在本地直连场景里,客户端弹出的「需要 API Key」往往是误报或者字段填错了位置——它真正想要的是服务地址。判断方法很直接:看输入框旁边写的是 Key 还是 Base URL / 端点,多数本地场景填的是后者。
- 客户端要 Key:先别急着找,看同页面有没有地址字段,本地模式下密钥常是占位,留空也能连上
- 客户端要地址:填本机服务地址即可,通常不需要任何凭据
- 客户端两者都要:说明它按云服务模板做的,本地直连时密钥字段随便填或留空,真正生效的是地址
- 什么都填了还是连不上:问题多半在服务没跑起来,或者端口被别的程序占了,跟密钥无关
在界面和配置文件里该翻哪些位置
翻的顺序很关键:先翻客户端侧,而不是 Ollama 侧。因为 Ollama 本体根本没有密钥管理界面,你在它的设置里翻是翻不出东西的。打开客户端配置,重点看地址字段、模型名字段有没有填对,密钥字段最后再看。然后再看服务侧,确认启动命令或配置文件里有没有额外挂载鉴权中间件,这一层才是密钥真正的出处。
- 第一步:确认服务是否在运行在终端里直接请求一次服务的根地址,看有没有正常响应。没有响应就先解决启动问题,不要往下走。
- 第二步:确认服务地址能否打开把客户端里填的地址复制到浏览器或命令行请求一次。连不上就是地址问题,换个写法再试。
- 第三步:拉一次模型列表能返回模型列表,说明服务本身是通的,问题只可能出在客户端的字段填法上。
- 第四步:用客户端连接前三步都通,客户端还报错,就去看它到底要哪种认证方式,别盲目猜密钥。
- 第五步:最后才补鉴权只有确认服务确实挂在外层网关上时,才去那层找密钥,Ollama 本机这边不用管。
具体要对照的字段口径和当前行为,到 部署测算(/models/deploy) 和 基础设施术语速查(/ai-dict/category/infra) 核对,那里的口径会随版本更新,别照抄网上两三年前的旧教程。
真的需要鉴权时,key 从哪来
如果确认服务已经暴露出去、确实需要鉴权,思路是「外挂一层」:在 Ollama 前面放一个带密钥校验的网关或反向代理,密钥由这一层自己指定和分发,Ollama 本体完全不参与。另一条路是直接换成本身就发放密钥的云端平台或聚合服务,这类平台的密钥在各自控制台的账户页里生成,跟 Ollama 没有任何关系。
| 场景 | 真正的凭据来源 | 找错地方的后果 |
|---|---|---|
| 本机单人用 | 无,只需服务地址 | 到处找 key,白花时间 |
| 局域网小团队共用 | 网络层限制,未必需要 key | 上了密钥体系,维护成本翻倍 |
| 对外暴露的服务 | 外挂网关或反代自己指定 | 以为 Ollama 内置了密钥管理 |
| 换用云端平台 | 对应平台控制台账户页 | 把平台密钥当成 Ollama 密钥 |
如果只是几个人在局域网里共用一台机器,先只做网络层限制往往就够了,不一定急着上密钥体系,两者成本差很多。各家平台的密钥申请入口和计费口径不一样,别默认通用,到 换模型前先比一比率和额度(/ai-nav/category/ai-api) 里按平台逐个对,看清楚再注册。
环境变量与多客户端场景怎么配
环境变量主要管的是服务监听地址、端口、模型存放目录这类运行参数,不要把它当成存放密钥的地方——这两件事经常被混为一谈,然后有人往环境变量里塞了半天的假密钥,当然不生效。
- 监听地址变量
- 决定服务对哪些网络位置可见,改它就等于改了谁能访问
- 端口变量
- 决定服务在哪个端口上等请求,客户端地址要跟它对齐
- 模型目录变量
- 决定模型文件放哪,跟鉴权没关系,但经常被误认成密钥目录
- 容器网络
- 容器内看到的地址和宿主机不同,报连不上时先怀疑这里
多个客户端指向同一台服务时,改一次服务端地址,客户端只需同步端点;如果每个客户端各自填了不同的密钥,反而容易互相干扰,排查时记得先把这些差异抹平。按机器的系统与启动方式不同,变量生效的位置有差异,可到 见到陌生技术名词去哪查(/stacks/atlas) 与 本地工具箱:换算、检测与转换(/tools) 里逐项确认。
一份能照着走的排查清单
- 确认服务在跑:终端直接请求,有响应再继续
- 打开服务地址:浏览器或命令行访问一次,确认可达
- 拉一次模型列表:能返回列表说明服务链路是通的
- 用客户端连:前三步都通过再试,把报错原文记下来
- 最后才补鉴权:只有确认挂在外层网关时才去找密钥
- 回头检查监听范围:对外暴露过的设置不会自己收回去
每一步都记录「哪一步返回了什么」,比反复重装省时间得多;问题多半在前两步就暴露了。对外暴露过服务的话,一定要回头检查监听范围有没有被放开过,这类改动不会自动回滚。拿不准客户端到底要哪种认证方式时,去 中转站目录(/sites) 看同类服务的接入说明作对照,比对着猜快。
下一步如果你已经确认自己需要的其实是某家平台的密钥,而不是本地 Ollama 的,先别急着注册——各家的额度规则和接入方式差别不小,按平台逐个核对完再决定更稳妥。→常见问题
Ollama 到底有没有 API key?
默认没有。它跑在本地,靠地址和端口访问,不生成也不校验密钥。你在客户端里看到的密钥输入框,多数情况下留空或随便填都能连。真正需要密钥,是因为你在前面加了网关,或者接的是本来就发密钥的云平台。
客户端提示需要 API Key,我该填什么?
先看提示旁边写的是 Key 还是服务地址。本地场景要填的是形如本机地址加端口的端点,不是密钥。若地址填对了还报错,再检查服务是否在运行、端口有没有被占用或被改过。
把 Ollama 暴露到局域网后,要不要加密钥?
看你信任范围。只在自家内网几台机器之间用,一般靠网络边界限制就够;一旦跨部门、跨办公点或走公网,就要在前面加一层带密钥校验的转发,密钥由那层生成,Ollama 本体仍然不管密钥。