ollama api key 怎么设置

模型与算力

给把 Ollama 暴露到局域网的用户讲清密钥从哪来、怎么配、客户端怎么带,以及没内置鉴权时用什么挡在前面。

很多人跑通 Ollama 之后想从另一台机器或容器里调,一搜「api key」却发现官方压根没这个入口,于是卡在「到底是没生成还是我没找对地方」。这篇按「先搞清有没有原生密钥」到「自己加一层鉴权」的顺序讲,给 Windows、Docker、局域网三种常见场景的配置位置和验证动作,最后说明什么情况下不该直接暴露端口。

很多人跑通 Ollama 之后想从另一台机器或者容器里调,去搜「ollama api key 怎么设置」,结果官网翻了一圈发现根本没有这个入口,于是开始怀疑是不是自己没找对地方。先说结论:默认装好的 Ollama 服务不校验任何凭证,所以不存在一个「官方后台给你发 key」的步骤。

这篇按顺序讲三件事:先确认你手里的服务到底有没有鉴权层,再讲密钥通常从哪来,最后给 Windows、Docker、局域网三种场景具体怎么配、怎么验。看完你应该能判断自己是该去加一层代理,还是根本不该把端口露出来。

先确认一件事:Ollama 本身有没有原生密钥

默认的本地服务是裸的,只要能访问到那个端口,谁都能调,不需要任何凭证。这也是为什么你搜「生成密钥」搜不到入口——不是入口藏起来了,是压根没有这个东西。判断方法很简单:服务起好之后直接发一次列表请求,如果什么凭证都不带就能拿到结果,说明当前没有鉴权层。

curl http://127.0.0.1:11434/api/tags

这条命令能正常返回模型列表,基本就说明你面对的是一个无鉴权服务。这种设计本身没问题,它适合只监听本机回环地址的场景,也就是只有这台机器上的程序能调用。一旦你把监听地址改成对所有网卡生效,前提条件就变了,这套裸奔逻辑就不适用了。

那密钥到底从哪来:三种常见来源

既然官方不发,你在各种教程里看到的 key 就只有几个来源。搞清楚自己属于哪一种,能省掉大量来回试错。

来源谁签发适合什么情况
自建反向代理自己部署的网关要长期对外提供服务,想统一管权限和用量
托管平台后台平台方用的是别人托管的模型服务,和本地 Ollama 无关
客户端插件占位工具自己某些编辑器要求填一个字段,填任意字符串也能过
内网约定串团队成员自己临时共享,靠口头约定和网关配置约束
  • 自建反向代理最可控:密钥由你在网关配置里定义,想加几个加几个,想撤就撤,日志也归你。
  • 托管平台代发的那把 key,别和本地 Ollama 混在一起谈,两者认证体系完全独立,拿错地方填只会白折腾。
  • 客户端插件要求的 key 要看清它是不是真做校验:有些只是占位字段,填什么都过,这种不算真正的鉴权。
  • 如果你看到有人说「Ollama 加个环境变量就出来 key」,基本可以判定是把别家产品的配置项记混了。

哪种来源适合你,取决于服务给谁用。只给自己用,不配也行;给团队或外部用,就必须走网关那一层。

Windows 上怎么配:环境变量与监听地址

Windows 上没有官方的密钥开关,你能改的主要是监听地址,让别的机器能连进来。这一步通过系统环境变量设置,改完必须重启服务才生效——很多人改完没重启,然后一口咬定配置没用。

  1. 改监听地址在系统环境变量里把监听地址改成对所有网卡生效,保存后完全退出 Ollama 再重新启动。
  2. 本机先验一次用新地址在本机请求一次列表接口,通了说明配置生效;不通就是环境变量没读到。
  3. 换机器再验一次在局域网另一台机器上请求同一个地址。这一步失败通常是防火墙没放行,不是配置问题。
  4. 决定要不要加代理如果这一步通了而且你准备长期开放,就该去前面挂一层网关;如果只是临时用,用完把监听改回本机。

家庭宽带环境有个额外注意点:不要顺手在路由器上做端口转发。那是公网上最容易被扫到的入口,一旦转发出去,等于把模型和算力完全开放给别人。

Docker 里怎么让它带鉴权

容器参数只负责监听和端口映射,不负责鉴权。别指望加一个环境变量就冒出来一把密钥,这个思路在容器里同样不成立。常规做法是在同一个容器网络里再起一个网关容器,流量先到网关,由网关校验后再转发给 Ollama 容器。

端口映射
只决定外面能不能连进来,不做任何身份判断。
网关容器
真正做密钥校验的一层,配置和日志都在这里看。
模型卷挂载
确认模型目录真的挂上了,否则重启容器会重新拉一遍,排查时先看日志有没有走下载。

验证要分三段做,缺一段都可能误判:容器内部自己请求通,宿主机请求通,局域网另一台机器带着密钥请求通。三段都过,才算这层网关真的接上了。

docker compose up -d;docker compose logs -f 网关服务名

配完怎么验,以及什么情况下别这么干

配完之后别只看「能调通」这一个结果,那说明不了鉴权有没有生效。正确的验证顺序是反过来的:先确认不带密钥的请求会被拒,再确认带正确密钥的请求能通过,最后确认错误密钥会被拒。三步缺一不可。

  • 日志里要能看到拒绝记录,看不到就说明请求根本没走到鉴权那一层,你以为的生效可能只是端口还开着。
  • 如果只是本机自己玩,最省事的做法是保持回环监听,不加任何鉴权层,复杂度为零,也不会有泄露面。
  • 团队共用又不想搭网关,可以约定用完就关掉对外监听,而不是长期开着裸端口等出事。
  • 对外提供服务且涉及用量统计的场景,网关那层几乎绕不开,这是结构问题不是配置技巧问题。

至于具体网关选型、各家方案的实测表现和当下可用的工具横向对比,站内一直在更新,直接看当时的数字比听人转述靠谱。

下一步想给手里的服务挑一层合适的网关,或者看看别人是怎么做鉴权和限流的,去工具目录里按场景筛一遍,对照自己的规模再决定。

常见问题

Ollama 到底能不能生成一个官方 api key?

不能。官方服务默认没有密钥机制,你在设置里翻不到生成入口是正常的。需要密钥就得自己在前面加一层网关或者反向代理来签发和校验,密钥是那一层的东西,不是 Ollama 自带的功能。

我在工具里填了 api key 也能用,是不是说明有鉴权?

大概率是占位字段。不少客户端配置项里要求填 key,但不校验内容,填什么都能连上。想确认就故意填一个错误值再请求一次,如果照样通,说明那层根本没做校验。

只在内网用,还需要配密钥吗?

看内网范围。同一台机器自己调不需要;如果是公司内网多人都能访问,建议至少加一层网关鉴权,因为内网不等于可信,同事误删模型或者跑满显存这种事并不少见。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。