Cloudflare Tunnel client
Cloudflare Tunnel client
包含 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 client 访问 Tunnel 后的私有源站以进行第 4 层流量传输,而无需在客户端执行 cloudflared access 命令。
开始使用前
在使用 Cloudflare Tunnel 之前,您需要在 Cloudflare 仪表板中完成几个步骤:您需要将网站添加到您的 Cloudflare 账户。请注意,目前可以在没有网站的情况下使用 Tunnel(例如用于私有路由),但由于历史原因,此要求仍然存在:
安装 cloudflared
可通过独立二进制文件、Docker 镜像、Debian、RPM 和 Homebrew 软件包进行下载。您也可以在 cloudflared GitHub 仓库的 此处 找到发布版本。
- 您可以通过 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 错误,您可以安装预推送钩子,在每次推送前运行代码检查和测试:
make install-hooks
这将配置 git 使用 .githooks/ 中的钩子,在每次推送前运行 make fmt-check lint test。