cloudflared 是 Cloudflare Tunnel 的命令行客户端,一个在 Cloudflare 网络与你的源站之间代理流量的隧道守护进程。它不需要在防火墙上开孔,源站可以保持尽可能封闭。支持 SSH、RDP 等 TCP 四层流量。
一、项目官方信息
| 项目 | 信息 |
|---|---|
| GitHub 仓库 | https://github.com/cloudflare/cloudflared |
| 官方文档 | https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel |
| 开源协议 | Apache-2.0 |
| 主要语言 | Go(约 91.4%) |
| Star 数 | 约 16.0k |
二、官方图片
cloudflared 仓库预览:

三、环境要求
- 一个 Cloudflare 账号,且域名已接入 Cloudflare(修改 NS 记录)。
- Linux/macOS/Windows,或 Docker。
- 源站可访问 cloudflared。
四、完整部署步骤
1. 安装
Debian/Ubuntu:
sudo wget -O /usr/share/keyrings/cloudflare-main.gpg https://pkg.cloudflare.com/cloudflare-main.gpg
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared bullseye main' | sudo tee /etc/apt/sources.list.d/cloudflared.list
sudo apt update && sudo apt install cloudflared
macOS(Homebrew):
brew install cloudflared
Docker:
docker pull cloudflare/cloudflared
Windows 到 Releases 下载 exe。
2. 登录认证
cloudflared tunnel login
浏览器会打开授权页面,选择要隧道的域名,授权后下载证书到 ~/.cloudflared/cert.pem。
3. 创建隧道
cloudflared tunnel create my-tunnel
会生成一个隧道 UUID 与凭据文件 ~/.cloudflared/<UUID>.json。
4. 配置路由
创建 config.yml:
tunnel: <UUID>
credentials-file: /root/.cloudflared/<UUID>.json
ingress:
- hostname: example.com
service: http://localhost:8080
- service: http_status:404
5. 配置 DNS
cloudflared tunnel route dns my-tunnel example.com
6. 启动
前台:
cloudflared tunnel --config config.yml run my-tunnel
系统服务:
sudo cloudflared service install
7. 验证
访问 https://example.com,应能看到本地 8080 服务。
五、使用方法
Quick Tunnel(临时测试)
无需域名,直接获得一个临时 trycloudflare.com 地址:
cloudflared tunnel --url http://localhost:8080
SSH 接入
cloudflared access ssh --hostname ssh.example.com
或在客户端用 cloudflared access tcp 建立本地转发。
私有网络
通过 WARP 客户端访问私有源站,无需暴露公网端口。
版本支持
Cloudflare 只维护最近一年内发布的版本;一年前的版本可能有 breaking change。
六、常见问题 FAQ
1. 登录后浏览器打不开?
手动复制终端给出的 URL 到浏览器,或在远程服务器加 --no-autoupdate 并把证书拷回本地。
2. 配置后访问 502?
检查 ingress 的 service 地址是否正确;确认本地服务已启动;用 cloudflared tunnel ingress validate 校验配置。
3. 如何同时暴露多个域名? 在 ingress 下添加多条 hostname/service 规则。
4. 如何作为系统服务运行?
cloudflared service install 会注册 systemd 服务。
5. Quick Tunnel 能用多久? 临时测试用,地址随时可能变化,不适合生产。
6. 支持 TCP(SSH/RDP)吗?
支持,用 cloudflared access 或 WARP 客户端。
七、跳转链接
- GitHub 仓库:https://github.com/cloudflare/cloudflared
- 官方文档:https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel
- Releases:https://github.com/cloudflare/cloudflared/releases
- TryCloudflare:https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/do-more-with-tunnels/trycloudflare/