本地 Ollama 部署后如何设置 Basic Auth 认证防止未授权访问接口

文章导读
如果 Ollama 服务需要暴露给局域网或公网,最稳妥的做法是通过 Nginx 或 Caddy 反向代理层添加 Basic Auth 认证,仅在完全本地单机使用且网络隔离可信时才依赖默认配置。
📋 目录
  1. A 命令速用版
  2. B 为什么会这样
  3. C 分步处理
  4. D 怎么验证是否生效
  5. E 常见坑
  6. F 参考来源
A A

如果 Ollama 服务需要暴露给局域网或公网,最稳妥的做法是通过 Nginx 或 Caddy 反向代理层添加 Basic Auth 认证,仅在完全本地单机使用且网络隔离可信时才依赖默认配置。

先说结论:Ollama 默认无身份认证,直接暴露端口存在未授权访问风险,生产环境必须加代理层做访问控制。

  • 先判断:确认服务是否仅本机访问,若需局域网共享则必须加固。
  • 优先做:使用 Nginx 反向代理并配置 HTTP Basic Auth 隐藏真实端口。
  • 再验证:通过 curl 不带认证头访问接口,确认返回 401 状态码。

命令速用版

生成密码文件并配置 Nginx 核心片段:

htpasswd -cb /etc/nginx/.passwd ollama_user your_password
location / {
    proxy_pass http://127.0.0.1:11434;
    auth_basic "Ollama Access";
    auth_basic_user_file /etc/nginx/.passwd;
}

为什么会这样

Ollama 设计初衷是简化本地部署,默认启动时不开启身份验证机制,也不校验请求来源。这意味着一旦 11434 端口被映射到局域网或公网,任何知道地址的人都能调用模型推理、列出甚至删除模型。现代开发环境中,WSL2、Docker 桥接模式或 IDE 远程转发都可能让原本绑定的 localhost 被外部触达,单纯依赖防火墙或默认绑定并不足够安全。

分步处理

1. 安装并准备 Nginx
确保服务器已安装 Nginx。若未安装,使用包管理器安装即可。

2. 生成认证密码文件
使用 apache2-utils 提供的工具生成加密密码文件,避免明文存储:

htpasswd -cb /etc/nginx/.passwd ollama_user your_secure_password

3. 配置反向代理
在 Nginx 配置文件中添加 server 块,监听外部端口(如 8080),转发至本地 11434:

server {
    listen 8080;
    location / {
        proxy_pass http://127.0.0.1:11434;
        auth_basic "Restricted Access";
        auth_basic_user_file /etc/nginx/.passwd;
    }
}

4. 限制 Ollama 监听地址
编辑 Ollama 服务配置,确保它只监听本地回环地址,不直接对外:

本地 Ollama 部署后如何设置 Basic Auth 认证防止未授权访问接口
Environment="OLLAMA_HOST=127.0.0.1:11434"

修改后重载 systemd 并重启 Ollama 服务。

怎么验证是否生效

使用 curl 命令测试接口访问权限。不带认证信息访问代理端口应被拒绝:

curl -i http://your_server_ip:8080/api/tags

预期返回 HTTP 401 Unauthorized。带上认证信息则应正常返回模型列表:

curl -u ollama_user:your_password http://your_server_ip:8080/api/tags

同时检查 Ollama 日志,确认请求是通过代理转发的。

常见坑

1. Docker 网络穿透
若 Ollama 运行在 Docker 中,确保容器网络模式不是 host,且端口映射仅绑定 127.0.0.1。

2. WSL2 本地回环
在 WSL2 环境中,localhost 可能被 Windows 主机直接访问,需在 Windows 防火墙额外限制。

3. 配置文件权限
密码文件权限应设置为仅 Nginx 用户可读,避免泄露。

参考来源

  • CSDN 问答:Ollama 默认开启 API 服务且无认证,如何防止未授权访问?
  • 技术教程:Ollama 离线安装后,如何用 Nginx 反向代理+Basic Auth 给你的 AI 模型接口加把‘锁’?
  • 安全提示:关于使用 Ollama 工具部署大模型存在未授权访问的风险提示
  • 部署指南:如何为 Ollama 添加身份认证,避免“裸奔”带来的安全隐患