一个人在自己电脑上跑 Ollama,默认配置基本就够用了。麻烦出现在第二种场景:同一间办公室里四五个人,都想用同一台机器上的那张显卡。
默认装完,Ollama 只监听127.0.0.1:11434,也就是只有本机能访问。同事想用得先连你的电脑?不现实。给每台机器各装一套?四五个人一起跑,显存当场就满了。
我后来选的做法是:模型只在一台机器上跑,前面加一层反向代理,把服务暴露在内网里,其他人用浏览器或脚本连过来。这篇写的就是这套最小配置,以及我自己配的时候踩过的几个默认值。
一、先让 Ollama 监听内网地址
Ollama 的服务地址由环境变量控制。Windows 下在「系统属性 → 环境变量」里加,Linux 下写进 systemd 的Environment=:
| 变量 | 作用 | 建议值 |
|---|---|---|
OLLAMA_HOST | 监听地址与端口 | 0.0.0.0:11434(或指定内网网卡 IP) |
OLLAMA_ORIGINS | 允许跨域的来源(浏览器直连必配) | 你的内网域名,如http://ollama.lan |
OLLAMA_MAX_LOADED_MODELS | 同时驻留几个模型 | 显卡够大就 2,不够就 1 |
OLLAMA_NUM_PARALLEL | 单模型并发请求数 | 4~8,按显存反推 |
OLLAMA_KEEP_ALIVE | 空闲多久卸载模型 | 30m,避免来回重载 |
改完重启服务,本机用下面这条命令能拿到模型列表,说明模型服务本身没问题:
curl http://127.0.0.1:11434/api/tags⚠️ 一个高频坑:OLLAMA_HOST改成0.0.0.0之后,不要顺手把 11434 端口映射到公网。Ollama 自身没有鉴权,暴露到公网等于把显卡送人。
二、加一层反向代理
代理层解决三件事:统一入口和域名、加访问控制、统一超时。
Nginx 最核心的一段:
location / { proxy_pass http://127.0.0.1:11434; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; # 流式输出必须关缓冲 proxy_buffering off; proxy_cache off; # 大模型首 token 慢,读超时给足 proxy_read_timeout 600s; proxy_send_timeout 600s; }这里有两个参数很容易漏,漏了就会出现「模型明明在跑,但页面一直转圈」:
proxy_buffering off:大模型是流式吐 token 的,开着缓冲会把内容攒住,前端只能等全部生成完才看到第一个字proxy_read_timeout:默认 60s,长回答或大 context 很容易超,直接提到 600s
内网里想再省事,Caddy 两行就够:
ollama.lan { reverse_proxy 127.0.0.1:11434 { flush_interval -1 } }flush_interval -1等价于关缓冲,是 Caddy 里跑流式接口的固定动作。
三、把并发和显存对上
代理修好之后,第二个瓶颈一定是显存。显存和并发的关系大致是这样:
| 显存 | 模型规模(量化后) | 建议NUM_PARALLEL |
|---|---|---|
| 6~8 GB | 7B / Q4 | 1~2 |
| 12~16 GB | 14B / Q4 | 2~4 |
| 24 GB | 32B / Q4 或 14B / Q8 | 4~8 |
并发给多了通常不会报错,只会变慢——请求排队、模型被反复换入换出,反而比单请求更糟。所以「并发数」不是越大越好,它应该由显存反推出来,而不是拍脑袋定。
四、访问控制别省
内网不等于可以裸奔。最少做两件事:
- 给代理加一层 Basic Auth,或用 Nginx 的
allow/deny只放行内网网段 - 如需外网访问,走 VPN 或内网穿透 + 认证,不要直接把端口开到公网
allow 192.168.1.0/24; deny all; auth_basic "ollama"; auth_basic_user_file /etc/nginx/.htpasswd;五、配完按这五条过一遍
- [ ] 本机
curl直连 11434 正常,排除模型服务本身的问题 - [ ] 从另一台机器
curl代理域名正常,说明监听和代理链路通了 - [ ] 浏览器里流式输出是「一个字一个字出」,不是「等半天一次全出」(否则就是缓冲没关)
- [ ] 长回答不中断(否则就是读超时没提)
- [ ] 换一个不在白名单的网段访问被拒绝,说明访问控制生效
小结
这套配置的全部内容就是:让模型监听内网地址 → 前面加一层关掉缓冲、放大超时的反向代理 → 用显存反推并发 → 加上访问控制。没有一步需要改 Ollama 的源码,也不需要额外的调度中间件。
真正会让人卡住的从来不是配置本身,而是那几个「文档里不会特意写」的默认值:默认只监听本机、默认开缓冲、默认 60 秒超时、默认没有鉴权。把这四个默认值改掉,多人在内网共用一个本地模型这件事就成立了。
关于作者:我是信可维,在做「软件著作权申请材料的辅助整理」工具。上面这些是自己在内网搭本地模型时记下来的配置流水,不是通用教程模板。