返回更新列表
新发布Aug 13, 2026

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 访问 Tunnel 源站(这些源站受 cloudflared tunnel 保护),以处理第 4 层的 TCP 流量 (即非 HTTP/websocket),这适用于 SSH、RDP 等用例。 此类用法可在 cloudflared access help 下查看。

你也可以改用 WARP 客户端 访问 Tunnel 后面的私有源站以处理第 4 层流量,而无需在客户端侧使用 cloudflared access 命令。

开始之前

在使用 Cloudflare Tunnel 之前,你需要在 Cloudflare 仪表板中完成几个步骤:你需要向 Cloudflare 账户添加一个 网站。请注意,如今可以在没有网站的情况下使用 Tunnel(例如用于私有 路由),但出于历史原因,此要求仍然必要:

  1. 向 Cloudflare 添加网站
  2. 将你的域名名称服务器更改为 Cloudflare

安装 cloudflared

下载内容以独立二进制文件、Docker 镜像以及 Debian、RPM 和 Homebrew 软件包的形式提供。你也可以在 cloudflared GitHub 仓库的此处找到发布版本。

Cloudflare Tunnel 的用户文档可在 https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/ 找到

创建 Tunnel 并路由流量

安装完成后,你可以将 cloudflared 认证到你的 Cloudflare 账户,并开始创建 Tunnel 以向你的源站提供流量服务。

TryCloudflare

想在将网站添加到 Cloudflare 之前测试 Cloudflare Tunnel?你可以使用 TryCloudflare 来完成,相关文档见此处。

破坏性变更

移除 CLI 标志、环境变量、配置键或命令属于破坏性变更。此类移除必须在移除它们的版本发布之前,在 Cloudflare Tunnel 变更日志中公布。

已弃用的版本

Cloudflare 目前支持与最新发布版本相隔一年以内的 cloudflared 版本。可能会引入与功能可用性无关的破坏性变更,这些变更将影响一年以前发布的版本。你可以在我们的开发者文档中了解更多关于升级 cloudflared 的信息。

例如,截至 2023 年 1 月,Cloudflare 将支持 cloudflared 版本 2023.1.1 至 cloudflared 2022.1.1。

开发

要求

更新 Go

go.mod 中的 go 指令必须指定完整的 major.minor.patch 版本 (例如 go 1.27.3)。不要省略补丁版本,包括 .0 版本。 这是用于构建和测试 cloudflared 的确切 Go 版本:Makefile 会从中导出 GOTOOLCHAIN=go<version>,因此当已安装的 Go 版本较旧或较新时,make 会下载该工具链。 make 通过 go run pkg@version 运行的工具也会使用此工具链。go.mod 中的 toolchain 指令会被忽略;不要添加它。 要改用已安装的 Go,请运行 make <target> GOTOOLCHAIN=local。

升级 Go 时,请更新 go 指令以及 .gitlab-ci.yml、.ci/image/Dockerfile、.github/workflows/check.yaml 和 各 Dockerfile 中所有对应的版本引用。同时更新 .ci/linux.gitlab-ci.yml 中的 Linux CI 构建器镜像和摘要 以保持一致;其 golangVersion 用于选择主/次版本镜像系列。在 macOS 和 Windows 上,版本不匹配只会导致一次工具链下载。使用 GOTOOLCHAIN=local 的构建 如果其 Go 版本低于 go.mod 则会失败,如果高于则使用其自身的 Go。

构建

要在本地构建 cloudflared,请运行 make cloudflared

测试

要在本地运行测试,请运行 make test

代码检查

要格式化代码并保持良好的代码质量,请使用 make fmt 和 make lint

Mock

在修改接口后,你可能需要重新生成 mock,因此请运行 make mocks

Git 钩子

为避免 CI 错误,你可以安装 pre-push 钩子,在每次推送前运行代码检查和测试:

make install-hooks

这会将 git 配置为使用 .githooks/ 中的钩子,在每次推送前运行 make fmt-check lint test。

分类