ComfyUI 怎么配置 Basic Auth 密码验证防止未授权访问

文章导读
ComfyUI 原生启动参数中没有提供 Basic Auth 密码验证功能,直接暴露服务存在未授权访问风险。最可靠的处理方案是在 ComfyUI 前端部署 Nginx 或 Caddy 反向代理,由代理层处理身份验证。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
  7. 参考来源
A A

ComfyUI 原生启动参数中没有提供 Basic Auth 密码验证功能,直接暴露服务存在未授权访问风险。最可靠的处理方案是在 ComfyUI 前端部署 Nginx 或 Caddy 反向代理,由代理层处理身份验证。

先说结论:ComfyUI 核心程序不包含身份验证模块,必须依赖外部反向代理或隧道服务实现访问控制。

  • 先判断:确认 ComfyUI 版本及启动参数,原生不支持 `--auth` 类指令。
  • 优先做:使用 Nginx 配置 htpasswd 或 Cloudflare Tunnel 设置访问策略。
  • 再验证:通过浏览器隐私模式或 curl 命令测试未登录是否无法访问。

命令速用版

以下是 Nginx 配置 Basic Auth 的核心片段,将其放入 server 配置块即可生效。

location / {
    proxy_pass http://127.0.0.1:8188;
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

生成密码文件命令:htpasswd -c /etc/nginx/.htpasswd username

为什么会这样

ComfyUI 设计初衷是本地桌面工具,网络暴露功能仅为调试便利,未内置安全认证模块。官方文档在介绍 `--listen` 参数时仅提示用于局域网访问,未提及内置密码保护机制。因此直接监听 0.0.0.0 会导致任何知道 IP 的人都能提交工作流。

分步处理

步骤 1:安装 Nginx 并生成密码文件

适用场景:Linux 服务器或本地部署环境。操作动作:安装 apache2-utils 工具包,执行 htpasswd 命令生成凭证。验证结果:确认文件生成且包含加密密码。风险边界:密码文件权限需设置为 640,防止被其他用户读取。

步骤 2:配置反向代理

适用场景:Nginx 已安装并运行。操作动作:编辑 nginx.conf 或 sites-available 配置,添加 auth_basic 指令。验证结果:执行 nginx -t 检查语法无错误。风险边界:确保 proxy_pass 地址与 ComfyUI 实际监听端口一致,默认为 8188。

步骤 3:重启服务

ComfyUI 怎么配置 Basic Auth 密码验证防止未授权访问

适用场景:配置修改完成后。操作动作:执行 nginx -s reload 或 systemctl restart nginx。验证结果:Nginx 进程状态为 active。风险边界:重启可能导致短暂连接中断,建议在业务低峰期操作。

怎么验证是否生效

使用 curl 命令不带凭证访问,应返回 401 Unauthorized 状态码。浏览器访问时应弹出密码输入框,输入错误密码无法加载界面。

curl -I http://your-server-ip:80

检查返回头中是否包含 WWW-Authenticate: Basic 字段。

常见坑

1. ComfyUI 启动时使用了 `--listen` 0.0.0.0,若 Nginx 配置错误,后端仍可能直接暴露。

2. 密码文件路径权限错误,Nginx 无法读取会导致 500 错误而非密码验证。

3. 未配置 HTTPS,密码在网络中以明文传输,建议配合 SSL 证书使用。

常见问题

ComfyUI 有没有自带的账号密码登录插件?

社区虽有 custom nodes 尝试实现,但非官方标准,稳定性不如反向代理方案。

只用 `--listen` 参数安全吗?

不安全,该参数仅开启网络监听,不包含任何访问控制或加密措施。

Cloudflare Tunnel 能代替 Nginx 吗?

可以,Cloudflare Access 策略能提供类似的身份验证且无需暴露公网 IP。

参考来源

  • ComfyUI GitHub Repository, README.md, `--listen` parameter description. URL: https://github.com/comfyanonymous/ComfyUI
  • Nginx Official Documentation, Module ngx_http_auth_basic_module. URL: https://nginx.org/en/docs/http/ngx_http_auth_basic_module.html