Cloudflare Tunnel (Zero Trust) 深度实战
Cloudflare Tunnel (CF Tunnel) 是完全免费的内网穿透神器,它不仅不需要公网 IP,而且自带企业级安全防护(Zero Trust Access)。
本指南将教你如何配置 Public Hostname 暴露服务,如何设置 Access Policies 保护敏感应用,以及如何利用 WARP Client 访问整个内网。
1. 为什么选择 Cloudflare Tunnel?
- 完全免费:不需要购买 VPS,不需要公网 IP。
- 安全:不需要在路由器开端口(防火墙可以完全关闭入站流量)。
- Zero Trust:即便是暴露在公网的服务,也可以强制要求用户登录(如 Google 账号、GitHub 账号)才能访问。
- Web 界面管理:配置极其直观。
2. 部署 Connector (Docker)
Cloudflare Tunnel 需要在 NAS 上运行一个 cloudflared 守护进程(Connector)。
准备工作
- Cloudflare 账号:拥有一个域名并托管在 Cloudflare。
- Zero Trust Dashboard:进入 One Dashboard > Networks > Tunnels。
- 创建 Tunnel:点击 Create a tunnel > 选择 Cloudflared > 复制 Token。
docker-compose.yml
services:
tunnel:
image: cloudflare/cloudflared:latest
container_name: cloudflared
restart: always
command: tunnel --no-autoupdate run --token <你的TOKEN>
3. Public Hostname:暴露服务
这是最常用的功能。你可以把 NAS 上的 Web 服务映射到一个子域名。
配置步骤
- 在 Tunnel 详情页,点击 Configure > Public Hostname。
- 点击 Add a public hostname。
- Subdomain:
dsm(例如 dsm.yourdomain.com)。 - Service:
- Type: HTTP
- URL:
192.168.1.100:5000(NAS 局域网 IP:端口)
- Save hostname。
- 稍等片刻,全球各地都可以访问
https://dsm.yourdomain.com了。
进阶:HTTPS 回源
有些服务(如 ESXi、Proxmox)强制 HTTPS。 * Type: HTTPS * URL: 192.168.1.100:443 * TLS Verify: 展开 Additional application settings > TLS > 开启 No TLS Verify(因为内网通常是自签名证书)。
4. Zero Trust Access:安全防护
直接暴露 DSM 或 SSH 是非常危险的。Cloudflare Access 可以让你给服务加把锁。
配置步骤
- 在 Zero Trust Dashboard > Access > Applications。
- Add an application > Self-hosted。
- Application name:
DSM Admin。 - Application domain:
dsm.yourdomain.com(必须与 Tunnel 中配置的一致)。 - Identity providers: 选择你配置的登录方式(如 Google, GitHub, One-time PIN)。
- Policies (规则):
- Rule name:
Allow Admin - Action:
Allow - Include:
Emails->your@email.com(只允许你自己访问)
- Rule name:
- Save application。
效果
现在访问 dsm.yourdomain.com,不再直接显示登录页,而是跳转到 Cloudflare Access 登录页。只有通过验证(如 GitHub 授权),才能看到 DSM 界面。黑客连你的登录框都摸不到。
5. Private Network (WARP):访问整个内网
如果你不想一个个配置 Public Hostname,或者需要访问非 HTTP 协议(如 SMB, RDP),可以使用 Private Network 模式。
配置步骤
- 在 Tunnel 详情页 > Private Network。
- Add a private network。
- CIDR:
192.168.1.0/24(你的局域网网段)。 - Save network。
客户端连接
- 在电脑/手机上安装 Cloudflare WARP 客户端。
- 登录你的 Zero Trust 组织(在 Settings > Account > Login with Cloudflare Zero Trust)。
- 连接 WARP。
- 现在,你可以直接 ping 通
192.168.1.100,就像连了 VPN 一样。你可以直接挂载 SMB 共享文件夹!
6. 常见问题
Q1: 速度慢?
- Cloudflare 的边缘节点虽然遍布全球,但在国内连接有时会绕路。
- 优化:虽然没办法改变物理链路,但可以通过优选 IP(需自建 CDN 中转,较复杂)改善。对于 NAS 管理、网页浏览来说,速度通常是可以接受的。
Q2: 无法上传大文件?
- Cloudflare 免费版对上传文件大小有限制(默认 100MB)。
- 解决:在 Dashboard > Settings > Network > Maximum upload size 中调整(最大支持到几百 MB)。如果需要传几个 GB 的电影,建议使用 Tailscale 或 FTP/WebDAV 直连,不要走 CF Tunnel。