cfui 是一个用于管理 Cloudflare Tunnel ( cloudflared )的 Web 控制台。它可以运行本地隧道进程,也可以通过 Cloudflare API 管理远程 Tunnel ingress 规则,支持 DDNS 、S3 兼容存储的 WebDAV 挂载,以及供 AI 客户端使用的 MCP 端点。 Web UI 已内置在二进制文件中。配置保存在数据目录下的本地 SQLite 数据库里。 功能
本地 Cloudflare Tunnel 运行管理
在浏览器里粘贴 Cloudflare Tunnel token ,启动或停止本地隧道。 支持自动启动、异常自动重启、协议、区域、重试次数、优雅关闭时间、metrics 、后量子模式、边缘 IP 版本、边缘绑定地址、TLS 校验和额外 cloudflared 参数。 显示隧道状态、当前协议、最近错误和版本构建信息。
远程 Tunnel 管理
可选功能,用于管理 Cloudflare 上托管的 Tunnel ingress 配置。 通过 Account ID 和 Tunnel ID 加载已有 Tunnel 。 添加、编辑和删除 public hostname 规则,支持 hostname 、path 、服务类型、服务地址、Host Header 、Origin Server Name 和 TLS 校验选项。 能在可解析时从本地 Tunnel token 自动带出 Account ID 和 Tunnel ID 。 在执行 Cloudflare 管理操作前,可以校验 API 权限。
DDNS
可选功能,复用远程 Tunnel 管理里的 Cloudflare API 凭据。 从可配置的 IP source URL 检测公网 IPv4 和 IPv6 。 创建和更新 Cloudflare A / AAAA 记录。 支持 Cloudflare 代理状态、TTL 、DNS comment 、重试设置、手动同步和最近同步记录。
S3 WebDAV
把一个或多个 S3 兼容 bucket 路径挂载成 WebDAV 端点。 支持通用 S3 兼容服务和 Cloudflare R2 预设。 每个挂载可以单独设置 endpoint 、region 、bucket 、root prefix 、mount path 、Access Key ID 、Secret Access Key 、WebDAV 账号密码和认证开关。 支持 S3 连接测试和 WebDAV 连接测试。 内置文件面板,可以列表、上传、下载、删除、重命名和创建目录。 WebDAV 可以走主 HTTP 服务,也可以走独立 HTTP 端口;两种模式互斥。 独立 WebDAV 模式支持手动启动/停止、可选自动启动、直连端口、自定义公开 URL ,以及跳转到 Cloudflare Tunnel 规则创建。 浏览器对 WebDAV 路径发起 GET 时,会显示只读文件列表或下载文件;PROPFIND、PUT、DELETE、MKCOL、MOVE、COPY、LOCK、UNLOCK 等方法保持 WebDAV 行为。
MCP 访问
可选的 Model Context Protocol 端点,路径为 /mcp。 使用 UI 中生成的 Bearer Token 认证。 提供隧道状态/配置、隧道启动/停止、最近日志、远程 Tunnel 管理操作,以及启用 DDNS 后的 DDNS 操作工具。
日志和运维
提供最近日志 API 和可选实时日志流。 支持在浏览器里过滤、复制、下载和清空日志。 HTTP 服务包含 panic recovery 和请求日志中间件。
功能开关
远程 Tunnel 管理、DDNS 、MCP 、S3 WebDAV 都是可选功能。 未启用的功能不会显示对应 Tab 。 DDNS 依赖远程 Tunnel 管理,因为它复用同一套 Cloudflare API 凭据。
多语言 UI
内置英文、中文、日文界面翻译。
快速开始 Docker docker run -d \ --name cfui \ -p 14333:14333 \ -v cfui-data:/app/data \ -v cfui-logs:/app/logs \ --restart unless-stopped \ ghcr.io/dockers-x/cfui:latest
Docker Hub 镜像: docker run -d \ --name cfui \ -p 14333:14333 \ -v cfui-data:/app/data \ -v cfui-logs:/app/logs \ --restart unless-stopped \ czyt/cfui:latest
Docker Compose services: cfui: image: ghcr.io/dockers-x/cfui:latest container_name: cfui restart: unless-stopped ports:
- "14333:14333"
如果使用独立 S3 WebDAV 端口,可以额外暴露:
- "14334:14334"
volumes:
- cfui-data:/app/data
- cfui-logs:/app/logs
environment:
BIND_HOST: 0.0.0.0
PORT: 14333
TZ: UTC
可选:通过环境变量注入 Cloudflare API 凭据,避免保存在 UI 中。
CFUI_TUNNEL_MGMT_ENABLED: "true"
CLOUDFLARE_ACCOUNT_ID: your-account-id
CLOUDFLARE_TUNNEL_ID: your-tunnel-id
CLOUDFLARE_API_TOKEN: your-api-token
healthcheck: test: ["CMD", "sh", "-c", "wget --no-verbose --tries=1 --spider http://localhost:$$PORT/ || exit 1"] interval: 30s timeout: 3s start_period: 5s retries: 3
volumes: cfui-data: cfui-logs: