cloudflare/cloudflared

GitHub: cloudflare/cloudflared

Cloudflare Tunnel 的官方客户端守护进程,用于建立从 Cloudflare 边缘网络到本地服务的安全隧道,无需开放防火墙端口即可安全暴露内网资源。

Stars: 13295 | Forks: 1184

# Cloudflare Tunnel 客户端 包含 Cloudflare Tunnel 的命令行客户端,这是一个隧道守护进程,用于将流量从 Cloudflare 网络代理到您的源站。 该守护进程位于 Cloudflare 网络和您的源站(例如 Web 服务器)之间。Cloudflare 接收客户端请求并通过此守护进程将其发送给您,无需您在防火墙上打洞 —— 您的源站可以保持尽可能封闭。 详细的文档可在 Cloudflare 文档的 [Cloudflare Tunnel 部分](https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel)中找到。 所有与代理到源站相关的用法都可以在 `cloudflared tunnel help` 下找到。 您也可以使用 `cloudflared` 访问隧道源站(受 `cloudflared tunnel` 保护)的第 4 层 TCP 流量(即非 HTTP/Websocket),这适用于 SSH、RDP 等用例。 此类用法可以在 `cloudflared access help` 下找到。 您也可以改用 [WARP client](https://developers.cloudflare.com/cloudflare-one/team-and-resources/devices/warp/) 来访问隧道后的私有源站以处理第 4 层流量,而无需在客户端使用 `cloudflared access` 命令。 ## 开始之前 在使用 Cloudflare Tunnel 之前,您需要在 Cloudflare 仪表板中完成几个步骤:您需要将一个网站添加到您的 Cloudflare 账户。请注意,目前可以在没有网站的情况下使用 Tunnel(例如用于私有路由),但由于遗留原因,此要求仍然必要: 1. [将网站添加到 Cloudflare](https://developers.cloudflare.com/fundamentals/manage-domains/add-site/) 2. [将您的域名服务器更改为 Cloudflare](https://developers.cloudflare.com/dns/zone-setups/full-setup/setup/) ## 安装 `cloudflared` 下载内容包括独立二进制文件、Docker 镜像以及 Debian、RPM 和 Homebrew 软件包。您也可以在 `cloudflared` GitHub 仓库的[此处](https://github.com/cloudflare/cloudflared/releases)找到发布版本。 * 您可以通过 Homebrew [在 macOS 上安装](https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/downloads/#macos),或通过下载[最新的 Darwin amd64 版本](https://github.com/cloudflare/cloudflared/releases) * Linux 的二进制文件、Debian 和 RPM 软件包[可以在此处找到](https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/downloads/#linux) * `cloudflared` 的 Docker 镜像[可在 DockerHub 上获取](https://hub.docker.com/r/cloudflare/cloudflared) * 您可以按照[此处的步骤](https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/downloads/#windows)在 Windows 机器上安装 * 要从源代码构建,请安装下方[开发](#development)部分中提到的所需版本的 go。然后您可以运行 `make cloudflared`。 Cloudflare Tunnel 的用户文档可以在 https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/ 找到 ## 创建隧道和路由流量 安装完成后,您可以将 `cloudflared` 认证到您的 Cloudflare 账户,并开始创建隧道以将流量传输到您的源站。 * 按照[这些说明](https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/get-started/)创建隧道 * 将流量路由到该隧道: * 通过 Cloudflare 中的公共 [DNS 记录](https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/routing-to-tunnel/dns/) * 或通过由 [Cloudflare Load Balancer](https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/routing-to-tunnel/public-load-balancers/) 指导的公共主机名 * 或来自 [WARP client 私有流量](https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/private-net/) ## TryCloudflare 想在将网站添加到 Cloudflare 之前测试 Cloudflare Tunnel 吗?您可以使用 TryCloudflare,文档[可在此处获取](https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/do-more-with-tunnels/trycloudflare/)。 ## 已弃用的版本 Cloudflare 目前支持距离最新版本发布**一年内**的 cloudflared 版本。可能会引入与功能可用性无关的破坏性更改,这将影响一年多前发布的版本。您可以在我们的[开发者文档](https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/downloads/update-cloudflared/)中阅读有关升级 cloudflared 的更多信息。 例如,截至 2023 年 1 月,Cloudflare 将支持从 cloudflared 版本 2023.1.1 到 cloudflared 2022.1.1。 ## 开发 ### 要求 - [GNU Make](https://www.gnu.org/software/make/) - [capnp](https://capnproto.org/install.html) - [go >= 1.24](https://go.dev/doc/install) - 可选工具: - [capnpc-go](https://pkg.go.dev/zombiezen.com/go/capnproto2/capnpc-go) - [goimports](https://pkg.go.dev/golang.org/x/tools/cmd/goimports) - [golangci-lint](https://github.com/golangci/golangci-lint) - [gomocks](https://pkg.go.dev/go.uber.org/mock) ### 构建 要在本地构建 cloudflared,请运行 `make cloudflared` ### 测试 要在本地运行测试,请运行 `make test` ### Linting 要格式化代码并保持良好的代码质量,请使用 `make fmt` 和 `make lint` ### Mocks 更改接口后,您可能需要重新生成 mocks,因此请运行 `make mock`
标签:Cloudflare, Docker, EVTX分析, EVTX分析, EVTX分析, Go, HTTP代理, MITRE ATT&CK, PE 加载器, RDP代理, Ruby工具, SaaS应用, SSH访问, TCP代理, VPN替代, WARP, ZTNA, 内网穿透, 反向代理, 安全连接, 安全防御评估, 应用层网关, 开源, 日志审计, 混合云, 私有网络路由, 端口转发, 网络基础设施, 网络安全, 网络安全隧道, 请求拦截, 边缘计算, 远程访问, 防火墙绕过, 隐私保护, 隧道, 零信任网络访问