使用 ngrok 配置 HTTPS
为您的本地 Open WebUI 提供即时公共 HTTPS。零配置,零开放端口。
ngrok 可以在公共 URL 与您的本地机器之间创建一条安全的隧道。这是为开发、演示或测试需要安全上下文(如语音通话)的功能而让 HTTPS 快速运行起来的最快方式。
何时使用 ngrok
ngrok 是开发和测试的理想选择。对于生产环境部署,建议使用 Nginx 或 Caddy 等反向代理,或使用 Cloudflare Tunnel 获得零信任访问。
前提条件
| 要求 | 细节 |
|---|---|
| Open WebUI | 本地运行于端口 8080(默认) |
| ngrok 账号 | 免费注册于 ngrok.com,提供稳定的授权 Token (authtoken) |
1. 安装 ngrok
- macOS
- Linux
- Windows
brew install ngrokcurl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok-v3-stable-linux-amd64.tgz \
| sudo tar xz -C /usr/local/binchoco install ngrok或者直接从 ngrok.com/download 下载。
2. 身份验证
ngrok config add-authtoken YOUR_AUTH_TOKEN在 dashboard.ngrok.com/get-started/your-authtoken 查找您的授权 Token。
3. 启动隧道
ngrok http 8080ngrok 将输出一个公共 URL,形如:
Forwarding https://a1b2-203-0-113-42.ngrok-free.app → http://localhost:8080在浏览器中打开该 https:// URL 即可。设置完成。
配置 Open WebUI
设置 WEBUI_URL 以确保 OAuth 回调和内部链接可以正确解析:
docker run -d \
-p 8080:8080 \
-e WEBUI_URL=https://a1b2-203-0-113-42.ngrok-free.app \
-v open-webui:/app/backend/data \
--name open-webui \
ghcr.io/open-webui/open-webui:main注意
ngrok 免费版 URL 在每次重启隧道时都会改变。请相应地更新 WEBUI_URL,或者使用(付费的)ngrok 自定义域名 获得一个固定的 URL。
自定义域名(可选)
使用付费的 ngrok 方案可以申请一个固定的子域名,使得您的 URL 永远不会改变:
ngrok http 8080 --url=your-name.ngrok-free.app这给您提供了一个永久的 URL,您只需在 WEBUI_URL 中设置一次即可一劳永逸。
快速参考
| 操作/内容 | 命令 / 数值 |
|---|---|
| 启动隧道 | ngrok http 8080 |
| 自定义域名 | ngrok http 8080 --url=your-name.ngrok-free.app |
| 控制面板 | dashboard.ngrok.com |
| 流量监控检查 | http://localhost:4040(ngrok 本地控制台) |
| 设置 CORS 源 | CORS_ALLOW_ORIGIN=https://your-name.ngrok-free.app |
局限性
| 关注点 | 细节 |
|---|---|
| 免费版 URL 轮换 | 每次重启隧道时 URL 都会改变,除非您使用自定义域名 |
| 过渡警告页面 | 免费版在首次访问时会显示一个 ngrok 的过渡引导页 |
| 非生产环境设计 | ngrok 会增加网络延迟且存在单点故障风险;建议在生产环境使用反向代理或 Cloudflare Tunnel |
| 速率限制 | 免费版有连接速率限制;付费计划则移除了这些限制 |