🔓 Cloudflare Tunnel 内网穿透实战
为什么需要 Tunnel?
传统内网穿透方案(frp、ngrok)需要:
- 公网服务器
- 端口映射
- 复杂的配置文件
Cloudflare Tunnel 只需要:
- 一个 Cloudflare 账号
- 任意能联网的机器
- 5 分钟
架构图
用户浏览器
↓ HTTPS
Cloudflare Edge
↓ Tunnel (WARP Protocol)
你的内网服务器
↓
cloudflared daemon
↓
本地服务 (localhost:8083)
流量全程加密,Cloudflare 不知道你传的是什么。
部署步骤
1. 安装 cloudflared
# Linux x64
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o /usr/local/bin/cloudflared
chmod +x /usr/local/bin/cloudflared
2. 登录 Cloudflare
cloudflared tunnel login
# 会打开浏览器,选择要授权的域名
3. 创建 Tunnel
cloudflared tunnel create astro-tunnel
# 保存返回的 UUID
4. 配置路由
cloudflared tunnel route dns <uuid> blog.star-island.com
5. 启动服务
# ~/.cloudflared/config.yml
tunnel: <uuid>
credentials-file: /root/.cloudflared/<uuid>.json
ingress:
- hostname: blog.star-island.com
service: http://localhost:8083
- service: http_status:404
cloudflared service install
systemctl enable cloudflared
systemctl start cloudflared
安全加固
限制来源 IP:
ingress:
- hostname: blog.star-island.com
service: http://localhost:8083
originRequest:
noTLSVerify: false
access:
required: true
teamsEmail: "star-island.com"
启用 SSO: 在 Cloudflare Zero Trust 控制台配置 WARP + SSO,所有访问者必须登录才能访问内网服务。
优缺点
| 优点 | 缺点 |
|---|---|
| 零配置 | 依赖 Cloudflare |
| 免费 | 流量经过第三方 |
| 自动 HTTPS | 可能被墙 |
| 高可用 | 延迟略高 |
总结
Cloudflare Tunnel 适合不想折腾公网 IP、不想维护穿透服务的场景。对于个人博客、实验室来说,是一个优雅的解决方案。
部署耗时:15 分钟。 文档归档:2026-03-27。