
cloudflared v2026.8.1
Cloudflare Tunnel 的客户端,通过零信任架构实现仅出站的安全连接到源站。无需更改防火墙即可支持 HTTP、WebSocket、SSH 和 RDP 流量,提供访问控制和身份验证。
Cloudflare Tunnel 客户端
包含用于 Cloudflare Tunnel 的命令行客户端,这是一个隧道守护进程,将流量从 Cloudflare 网络代理到您的源站。
该守护进程位于 Cloudflare 网络和您的源站(例如,一个 Web 服务器)之间。Cloudflare 吸引客户端请求并通过此守护进程将它们发送给您,
无需在防火墙上打洞——您的源站可以保持尽可能地封闭。
Cloudflare 文档的 Cloudflare Tunnel 部分 中提供了广泛的文档。
所有与代理到您的源站相关的用法都可以在 cloudflared tunnel help 中找到。
您还可以使用 cloudflared 访问受 cloudflared tunnel 保护的隧道源站,用于第 4 层(即非 HTTP/WebSocket)的 TCP 流量,
这适用于 SSH、RDP 等场景。
这些用法可以在 cloudflared access help 中找到。
您也可以改用 WARP 客户端
来访问隧道后的私有源站,用于第 4 层流量,而无需在客户端使用 cloudflared access 命令。
开始之前
在使用 Cloudflare Tunnel 之前,您需要在 Cloudflare 仪表盘中完成几个步骤:您需要向您的 Cloudflare 账户添加一个 网站。请注意,目前可以在没有网站的情况下使用 Tunnel(例如用于私有路由),但出于遗留原因,这一要求仍然必要:
安装 cloudflared
下载可用的独立二进制文件、Docker 镜像以及 Debian、RPM 和 Homebrew 软件包。您还可以在 cloudflared GitHub 仓库的 releases 中找到发布版本。
- 您可以通过 Homebrew 在 macOS 上安装,或下载 最新的 Darwin amd64 发布版本
- Linux 的二进制文件、Debian 和 RPM 软件包 可在此处找到
cloudflared的 Docker 镜像 可在 DockerHub 上获取- 您可以按照 这里的步骤 在 Windows 机器上安装
- 要从源码构建,请安装下面开发部分提到的 Go 版本要求。然后您可以运行
make cloudflared。
Cloudflare Tunnel 的用户文档可访问 https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/
创建隧道并路由流量
安装完成后,您可以将 cloudflared 认证到您的 Cloudflare 账户,并开始创建隧道以将流量服务到您的源站。
- 按照 这些说明 创建隧道
- 将流量路由到该隧道:
- 通过 Cloudflare 中的公共 DNS 记录
- 或者通过由 Cloudflare 负载均衡器 引导的公共主机名
- 或者从 WARP 客户端私有流量
TryCloudflare
想在向 Cloudflare 添加网站之前测试 Cloudflare Tunnel?您可以按照 此处提供的文档 使用 TryCloudflare 进行测试。
已弃用的版本
Cloudflare 目前支持 最近一次发布版本一年内 的 cloudflared 版本。可能会引入与功能可用性无关的破坏性更改,这些更改将影响一年前发布的版本。您可以在我们的 开发文档 中阅读更多关于升级 cloudflared 的信息。
例如,截至 2023 年 1 月,Cloudflare 将支持 cloudflared 版本 2023.1.1 到 cloudflared 2022.1.1。
开发
要求
构建
要本地构建 cloudflared,运行 make cloudflared
测试
要本地运行测试,运行 make test
代码检查
要格式化代码并保持良好的代码质量,使用 make fmt 和 make lint
模拟对象
在接口更改后,您可能需要重新生成模拟对象,因此运行 make mocks
Git 钩子
为了避免 CI 错误,您可以安装 pre-push 钩子,在每次推送之前运行代码检查和测试:
make install-hooks
这将配置 git 使用 .githooks/ 中的钩子,该钩子在每次推送前运行 make fmt-check lint test。