目录
Ollama 环境变量教程:配置 OLLAMA_HOST、模型路径和上下文长度
Ollama 服务的行为由环境变量控制。本节整理了最常用的配置,以及在各操作系统上的设置方法。
常用环境变量
| 变量 | 作用 | 默认值 |
|---|---|---|
OLLAMA_HOST | 服务监听的地址和端口 | 127.0.0.1:11434 |
OLLAMA_MODELS | 模型存储目录 | 见下方 |
OLLAMA_CONTEXT_LENGTH | 默认上下文长度(token) | 4096 |
OLLAMA_KEEP_ALIVE | 模型闲置多久后从内存中卸载 | 5m |
OLLAMA_NUM_PARALLEL | 每个模型同时处理的请求数 | 1 |
OLLAMA_MAX_LOADED_MODELS | 同时加载的模型数量上限 | 每张 GPU 3 个 |
OLLAMA_MAX_QUEUE | 排队请求上限,超出后返回 503 | 512 |
OLLAMA_ORIGINS | 允许跨源(CORS)请求的域名 | 本机 |
OLLAMA_FLASH_ATTENTION | 强制开启(1)或关闭(0)Flash Attention | 自动 |
OLLAMA_KV_CACHE_TYPE | 上下文缓存的量化类型:f16、q8_0、q4_0 | f16 |
OLLAMA_NO_CLOUD | 禁用云端功能(云端模型、网络搜索) | 关闭 |
运行 ollama serve --help 可以查看完整列表。默认值可能随版本调整,请以你安装的版本为准。
如何设置
Windows
- 先通过系统托盘图标退出 Ollama。
- 在开始菜单中搜索“编辑帐户的环境变量”。
- 新增或修改变量,例如名称为
OLLAMA_HOST,值为0.0.0.0:11434。 - 点击“确定”后,从开始菜单重新启动 Ollama。
macOS(应用程序版)
launchctl setenv OLLAMA_HOST "0.0.0.0:11434"
launchctl setenv OLLAMA_CONTEXT_LENGTH "8192"
设置后重新启动 Ollama 应用程序。launchctl setenv 在重新启动电脑后会失效;如需长期生效,可以将其写入登录时运行的脚本。
Linux(systemd)
sudo systemctl edit ollama.service
在打开的编辑器中添加:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_CONTEXT_LENGTH=8192"
保存后应用更改:
sudo systemctl daemon-reload
sudo systemctl restart ollama
手动运行时
OLLAMA_HOST=0.0.0.0:11434 ollama serve
让局域网中的其他电脑连接
默认只监听 127.0.0.1,只有本机可以连接。要让同一网络中的其他电脑(或手机、NAS)使用:
-
将
OLLAMA_HOST设置为0.0.0.0:11434,然后重新启动 Ollama。 -
确认防火墙允许 11434 端口通过。
-
在其他电脑上测试:
curl http://你的电脑IP:11434
Ollama 的 API 没有账号密码验证。千万不要直接将 11434 暴露到互联网,否则任何人都能使用你的 GPU,甚至删除你的模型。需要从外部访问时,请通过 VPN(例如 Tailscale),或在前面加上带验证功能的反向代理。
更改模型存储位置
模型通常有数 GB 到数十 GB 大小。默认位置:
| 系统 | 位置 |
|---|---|
| Windows | C:\Users\用户名\.ollama\models |
| macOS | ~/.ollama/models |
| Linux | /usr/share/ollama/.ollama/models |
想将模型存放到其他硬盘,可以设置 OLLAMA_MODELS,例如在 Windows 上将其设为 D:\ollama\models。在 Linux 上,要确认 ollama 用户对新目录有读写权限:
sudo mkdir -p /data/ollama/models
sudo chown -R ollama:ollama /data/ollama
已下载的模型可以直接将整个 models 目录移过去,无需重新下载。
上下文长度
上下文长度(context length)是模型一次能处理的 token 数量,包括你的输入、对话历史和模型的回答。中文大约每个字相当于 1~2 个 token。
如果你让模型总结一份长文档,却发现它只看了后半部分,通常是因为上下文长度不足,前面的内容被截断了。
调整方式(任选一种):
- 全局:
OLLAMA_CONTEXT_LENGTH=16384 - 单个模型:在 Modelfile 中设置
PARAMETER num_ctx 16384 - 单次请求:在 API 中设置
"options": {"num_ctx": 16384}
上下文越长,占用的内存越多。可以运行 ollama ps 确认模型是否还能完整放入 GPU。
模型驻留时间
每次加载模型都需要时间(大型模型可能需要十几秒)。
OLLAMA_KEEP_ALIVE=30m # 闲置 30 分钟后才卸载
OLLAMA_KEEP_ALIVE=-1 # 永不卸载
OLLAMA_KEEP_ALIVE=0 # 用完后立即卸载
API 请求中的 keep_alive 参数会覆盖此设置。
同时为多个用户提供服务
将 Ollama 用作团队共享服务时:
OLLAMA_NUM_PARALLEL=4
OLLAMA_MAX_LOADED_MODELS=2
注意:平行请求数会使上下文的内存用量成倍增加(约为 NUM_PARALLEL × CONTEXT_LENGTH),因此显卡内存需要足够大。
让网页直接调用 Ollama(CORS)
从浏览器扩展或其他域名的网页直接调用 Ollama 时,需要允许相应来源:
OLLAMA_ORIGINS="https://my-app.example.com,chrome-extension://*" 更新于 2026年10月12日