Cloudflare Tunnel(cloudflared)可以将本地服务安全地暴露到公网,无需公网 IP、无需开放端口。
brew install cloudflaredcloudflared tunnel login浏览器会自动打开,选择要使用的域名并授权。
cloudflared tunnel create <隧道名称>例如:cloudflared tunnel create service
cloudflared tunnel route dns <隧道名称> <子域名>例如:cloudflared tunnel route dns service test.example.com
这会自动在 Cloudflare DNS 添加 CNAME 记录。
# 查看隧道列表
cloudflared tunnel list
# 获取 token
cloudflared tunnel token <隧道名称>将 token 解码后创建凭证文件 ~/.cloudflared/<隧道ID>.json:
{
"AccountTag": "<账户ID>",
"TunnelSecret": "<隧道密钥>",
"TunnelID": "<隧道ID>"
}创建 ~/.cloudflared/config.yml:
tunnel: <隧道ID>
credentials-file: ~/.cloudflared/<隧道ID>.jsoncloudflared tunnel run <隧道名称>cloudflared tunnel --url http://localhost:8080会生成一个临时的 *.trycloudflare.com 域名。
Tunnel 管理入口在 Cloudflare Zero Trust:
- 访问 https://one.dash.cloudflare.com
- 进入 Networks → Tunnels
在这里可以:
- 查看隧道状态
- 修改 ingress 配置(端口映射)
- 添加更多域名路由
# 查看隧道列表
cloudflared tunnel list
# 查看隧道详情
cloudflared tunnel info <隧道名称>
# 删除隧道
cloudflared tunnel delete <隧道名称>
# 查看版本
cloudflared --versionsudo cloudflared service install
sudo launchctl start com.cloudflare.cloudflared| 工具 | 用途 | 需要公网 IP |
|---|---|---|
| Cloudflare Tunnel | 内网穿透,暴露服务到公网 | 否 |
| Tailscale | 组建私有 mesh VPN | 否 |
| Caddy | Web 服务器 / 反向代理 | 是 |
最后更新:2026-01-31