Cloudflare cloudflared:安全的内网穿透隧道工具

cloudflared 在 GitHub 上已经拿到 14,180 St…

Cloudflare cloudflared:安全的内网穿透隧道工具

cloudflared 在 GitHub 上已经拿到 14,180 Star 了。

Cloudflare 开源了这个工具,作为 Cloudflare Tunnel 的命令行客户端,实现流量从 Cloudflare 网络到本地源站的代理转发。

1、这玩意儿是干嘛的

cloudflared 部署在 Cloudflare 网络和本地源站之间,接收 Cloudflare 转发的用户请求,再传递给本地服务。使用过程中不需要在防火墙上开放端口,本地源站可以保持完全封闭状态,避免直接暴露到公网带来的安全风险。

除了代理 HTTP 和 WebSocket 流量到本地源站,cloudflared 还支持四层 TCP 流量访问,适用于 SSH、RDP 等远程访问场景。用户也可以搭配 WARP 客户端,直接访问隧道背后的私有源站,不需要在客户端执行 cloudflared access 相关命令,简化访问流程。

官方文档在 Cloudflare 文档站的 Cloudflare Tunnel 板块有详细说明,所有代理到源站的功能可以通过 cloudflared tunnel help 命令查看,TCP 访问相关功能可以通过 cloudflared access help 命令查看。

正文顶部截图

2、使用前的准备

使用 Cloudflare Tunnel 之前,需要先在 Cloudflare 控制台完成基础配置:

  1. 把网站添加到 Cloudflare 账户
  2. 将域名的 nameserver 修改为 Cloudflare 提供的地址

如果需要测试功能但暂时不想添加网站,可以使用 TryCloudflare 服务完成测试,官方提供了对应的使用文档。

3、安装方式

cloudflared 提供多种安装方式,覆盖主流平台:

  • macOS 可以通过 Homebrew 安装,或者直接下载 Darwin amd64 二进制文件
  • Linux 提供二进制文件、Debian 包、RPM 包
  • Docker 镜像在 DockerHub 上可以直接获取
  • Windows 平台有对应的安装步骤

也可以从源码编译安装,需要安装 Go 1.26 及以上版本、GNU Make、capnp 等依赖,执行 make cloudflared 命令即可完成编译。开发过程中还可以使用 make test 运行测试,make fmtmake lint 完成代码格式化和检查。

README区域截图

4、基本使用流程

安装完成后,先将 cloudflared 认证到 Cloudflare 账户,之后就可以创建隧道并配置流量路由:

  1. 按照官方文档创建隧道
  2. 配置流量路由规则,支持三种方式:

– 通过 Cloudflare 公共 DNS 记录指向隧道

– 通过 Cloudflare 负载均衡器的公共主机名指向隧道

– 仅对 WARP 客户端的私有流量开放访问

Cloudflare 对 cloudflared 版本的支持周期为一年,距离最新发布时间超过一年的版本可能受非功能相关的破坏性变更影响,用户需要定期升级版本,避免出现兼容性问题。

5、适合哪些人用

  • 需要将本地服务安全暴露到公网、不想开放防火墙端口的开发者
  • 有远程访问内网服务器、SSH、RDP 需求的个人用户
  • 企业内部需要搭建安全私有网络、实现跨地域资源访问的运维人员
  • 希望避免公网直接暴露源站、提升服务安全性的网站运营者

开源地址:https://github.com/cloudflare/cloudflared