Cloudflare Tunnel
· 阅读需 4 分钟
Cloudflare Tunnel(零暴露,快速上线)详解
Cloudflare Tunnel(原 Argo Tunnel)是 Cloudflare Zero Trust 架构的核心组件,它通过出站连接模型实现服务的公网暴露,彻底消除了传统方案中端口开放、公网 IP 依赖等安全风险,同时具备分钟级部署的极致效率。
核心优势:零暴露架构
1. 无公网 IP,无端口开放
- 原理:在服务器上运行
cloudflared守护进程,主动建立到 Cloudflare 边缘网络的出站加密隧道。外部请求无法直接访问源站,只能经 Cloudflare 边缘节点通过隧道转发。 - 安全价值:攻击者无法扫描到源站 IP 和开放端口,DDoS 攻击被 Cloudflare 全球网络吸收,源站完全隐身。
2. 默认 HTTPS,证书自动管理
- Cloudflare 自动为域名签发并续期 SSL 证书,外部访问全程加密,无需手动配置 Let's Encrypt 等证书服务。
3. 身份验证集成
- 可配合 Cloudflare Access 实现 OAuth、MFA 等多因素认证,构建零信任访问控制体系。
快速上线:5 分钟部署实战
根据真实配置实践,完整部署流程仅需 5 个核心步骤:
步骤 1:安装 cloudflared
# 下载最新版本(支持 Linux/Windows/macOS)
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o cloudflared
chmod +x cloudflared && sudo mv cloudflared /usr/local/bin/
cloudflared --version
步骤 2:认证并创建隧道
# 浏览器授权选择域名
cloudflared tunnel login
# 创建命名隧道(自动生成凭证文件)
cloudflared tunnel create my-tunnel
# 输出隧道 ID:167e64e3-17b5-4bf8-bd7b-f7691f658416
步骤 3:配置路由规则
创建配置文件 /etc/cloudflared/config.yml:
tunnel: my-tunnel
credentials-file: /etc/cloudflared/167e64e3-17b5-4bf8-bd7b-f7691f658416.json
ingress:
# HTTP 服务示例
- hostname: app.yourdomain.com
service: http://localhost:8080
# SSH 服务示例
- hostname: ssh.yourdomain.com
service: ssh://localhost:22
# 兜底规则(必需)
- service: http_status:404
步骤 4:配置 DNS 记录
# 自动创建 CNAME 记录指向隧道
cloudflared tunnel route dns my-tunnel "app.yourdomain.com"
cloudflared tunnel route dns my-tunnel "ssh.yourdomain.com"
步骤 5:启动服务
# 创建 systemd 服务(推荐生产环境)
sudo tee /etc/systemd/system/cloudflared.service > /dev/null <<'EOF'
[Unit]
Description=cloudflared tunnel
After=network-online.target
[Service]
ExecStart=/usr/local/bin/cloudflared --config /etc/cloudflared/config.yml tunnel run
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now cloudflared
完成! 等待 1-2 分钟,访问 https://app.yourdomain.com 即可看到内网服务。
技术架构对比
适用场景
- 家庭服务器/NAS 远程访问:无需公网 IP 或动态域名
- 开发测试环境:快速将本地服务暴露给协作方
- 企业内网应用发布:配合 Zero Trust 实现员工安全访问
- 混合云架构:打通多云与本地数据中心
性能与成本
- 免费额度:个人用户免费套餐足够使用,包含无限隧道数量和充足流量
- 网络加速:自动利用 Cloudflare Argo Smart Routing,通过私有骨干网传输,延迟通常低于传统 CDN 回源
- 协议优化:支持 HTTP/2、QUIC 等现代协议,连接复用减少握手开销
最佳实践
-
Docker 部署(推荐):
services:
cloudflared:
image: cloudflare/cloudflared
restart: always
command: tunnel --no-autoupdate run --token YOUR_TUNNEL_TOKEN -
多服务隔离:为不同服务创建独立子域名,便于权限管理
-
监控告警:配置 Cloudflare 仪表板监控隧道状态
-
安全加固:对敏感服务启用 Cloudflare Access 身份验证
Cloudflare Tunnel 通过颠覆性的出站连接模型,实现了真正的零暴露安全架构,其快速上线能力让个人开发者和企业都能在分钟级完成生产环境的部署,是现代内网穿透和零信任架构的首选方案。
微信公众号

