LogoOllaMan 文档

服务器认证设置

为 Ollama 服务器配置 Basic Auth 认证

概述

OllaMan 支持通过 Basic Auth 连接到受保护的 Ollama 服务器。由于 Ollama 本身不提供认证功能,你需要通过反向代理(如 Nginx、Caddy 等)来配置认证保护。


何时使用认证

在以下情况下,强烈建议为 Ollama 服务器启用认证:

  • 服务器暴露在互联网上:任何可以从公网访问的服务器都应该受到保护
  • 多个用户访问同一服务器:防止未授权访问和滥用
  • 安全策略要求认证:组织或团队的安全规范要求
  • 保护敏感模型:当服务器上运行着专有或敏感的 AI 模型时

为 Ollama 配置认证

使用 Nginx 配置 Basic Auth

Nginx 是最常用的反向代理服务器,以下是完整的配置步骤:

安装必要工具

首先确保系统上安装了 Nginx 和 Apache 工具包(用于生成密码文件):

# Ubuntu/Debian
sudo apt update
sudo apt install nginx apache2-utils

# macOS
brew install nginx

创建密码文件

使用 htpasswd 命令创建认证用户和密码:

sudo htpasswd -c /etc/nginx/.htpasswd username

系统会提示你输入密码。添加更多用户时,去掉 -c 参数:

sudo htpasswd /etc/nginx/.htpasswd another_user

配置 Nginx 反向代理

创建或编辑 Nginx 配置文件(例如 /etc/nginx/sites-available/ollama):

server {
    listen 8080;
    server_name your-server-domain.com;

    location / {
        # 启用 Basic Auth
        auth_basic "Ollama Server";
        auth_basic_user_file /etc/nginx/.htpasswd;

        # 代理到 Ollama 默认端口
        proxy_pass http://localhost:11434;

        # 必要的代理头
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # 处理 WebSocket 连接(如果需要)
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        # 超时设置(大模型推理可能需要较长时间)
        proxy_read_timeout 300s;
        proxy_connect_timeout 75s;
    }
}

端口说明:在这个配置中,Nginx 监听 8080 端口并转发到 Ollama 默认的 11434 端口。Ollama 保持在 localhost:11434 运行,不需要修改任何配置。客户端通过 http://your-server:8080 访问受保护的 Ollama 服务。

启用并重启 Nginx

# 创建符号链接(Ubuntu/Debian)
sudo ln -s /etc/nginx/sites-available/ollama /etc/nginx/sites-enabled/

# 测试配置
sudo nginx -t

# 重启 Nginx
sudo systemctl restart nginx

测试认证配置

使用 curl 测试 Basic Auth 是否正常工作:

# 测试未认证请求(应该失败)
curl http://localhost:8080/api/tags

# 测试认证请求(应该成功)
curl -u username:password http://localhost:8080/api/tags

成功的响应应该返回模型列表,失败会返回 401 Unauthorized 错误。


使用 Caddy 配置 Basic Auth

Caddy 是另一个流行的反向代理,配置更加简单:

安装 Caddy

# Ubuntu/Debian
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

# macOS
brew install caddy

生成密码哈希

caddy hash-password

输入密码后,复制生成的哈希值。

配置 Caddyfile

创建或编辑 /etc/caddy/Caddyfile:

Caddyfile
:8080 {
    basicauth {
        username $2a$14$hashed_password_here
    }

    reverse_proxy localhost:11434
}

$2a$14$hashed_password_here 替换为前面生成的密码哈希。

Caddy 监听 8080 端口并转发到 Ollama 默认的 11434 端口,无需修改 Ollama 配置。

重启 Caddy

sudo systemctl restart caddy

在 OllaMan 中配置认证

配置好服务器端的认证后,在 OllaMan 中添加服务器时需要提供认证信息:

打开服务器设置

点击侧边栏的设置图标,然后选择 Servers(服务器)选项卡。

服务器设置

添加或编辑服务器

点击 "Add Server"(添加服务器)按钮,或编辑现有服务器。

填写认证信息

在服务器配置表单中:

  1. Server Name(服务器名称):为服务器取一个易于识别的名称
  2. Server URL(服务器 URL):输入 Nginx 代理的地址(例如 http://192.168.1.100:8080)
  3. Username(用户名):输入认证用户名
  4. Password(密码):输入认证密码

测试连接

点击 "Test Connection"(测试连接)按钮。

如果认证信息正确,你会看到:

  • Connected(已连接):绿色指示器
  • 服务器版本信息

如果认证失败,会显示:

  • Connection Failed(连接失败):红色指示器
  • 错误信息(通常是 "401 Unauthorized")

保存配置

测试成功后,点击 "Save"(保存)按钮。

OllaMan 会自动检测你是否填写了认证信息,并在所有请求中自动添加 Basic Auth 头。


安全最佳实践

保护你的服务器

网络安全

  • 不要直接暴露:避免将 Ollama 直接暴露到公网
  • 使用 VPN:通过 VPN 或 SSH 隧道访问远程服务器
  • 配置防火墙:限制只允许特定 IP 地址访问
  • 启用 HTTPS:在生产环境中始终使用 HTTPS 加密连接

认证管理

  • 强密码:使用 20 个字符以上的强密码
  • 定期轮换:定期更换认证凭据
  • 独立凭据:不要在团队成员之间共享同一套凭据
  • 最小权限:如果可能,为不同用户分配不同的权限级别

访问控制

  • 监控日志:定期检查访问日志,发现异常行为
  • 限制连接:使用 IP 白名单限制访问来源
  • 及时清理:删除不再使用的用户账户
  • 保持更新:及时更新 Ollama、Nginx/Caddy 到最新版本

HTTPS 配置(推荐)

对于生产环境和互联网访问,强烈建议配置 HTTPS:

使用 Let's Encrypt 和 Nginx

# 安装 Certbot
sudo apt install certbot python3-certbot-nginx

# 获取证书并自动配置 Nginx
sudo certbot --nginx -d your-domain.com

使用 Caddy(自动 HTTPS)

Caddy 会自动为你的域名申请和续期 SSL 证书:

Caddyfile
your-domain.com {
    basicauth {
        username $2a$14$hashed_password_here
    }

    reverse_proxy localhost:11434
}

重启 Caddy 后,它会自动申请并配置 SSL 证书。


故障排除


下一步