
[!NOTE] 本地开发了项目想给客户演示?或者家里建了 NAS 想共享给没有装 VPN 的朋友?传统的内网穿透工具要么限速收费,要么需要租云主机备案。今天老周带大家玩转“宇宙第一安全大厂” Cloudflare 旗下的良心功能 —— Cloudflare Tunnel (CF 隧道)。不需要公网 IP,不需要路由器端口映射,完全免费且自带全球 CDN 防护和 SSL 安全证书,一键打通内网与外网!
目录
1.痛点:为什么它是目前最完美的公网分享方案?
2.原理解析:Cloudflare Tunnel 是如何工作的?
3.前期准备:注册域名并接入 Cloudflare 托管
4.实战部署:用 Docker 一键在内网设备部署 Connector
5.对接上线:在 CF 后台绑定本地域名与端口
6.结语:享受极速、安全的公网访问
1.痛点:为什么它是目前最完美的公网分享方案?
虽然老周之前极力推荐大家用 Tailscale 或 NetBird 组建私有局域网,但在以下场景中,虚拟局域网却不太好使: - 分享给客户/朋友:对方没装 Tailscale 客户端,你不可能强迫每个看你网页的客户都去下载一个组网软件。 - 第三方 Webhook 调试:比如开发微信小程序、第三方支付回调时,微信服务器需要直接访问你的本地 http://localhost 接口。
如果用传统的内网穿透(如 frp/花生壳): - 国内节点:必须备案域名,且带宽很小(通常限制 1-2M),收费极贵。 - 自建中转:要额外买云服务器,延迟高,且有安全隐患。
而 Cloudflare Tunnel 则是完美解法:带宽不限速、完全免费、自动生成 HTTPS 证书、自带大厂的 DDOS 防护,且不需要域名备案!
2. 原理解析:Cloudflare Tunnel 是如何工作的?
传统的内网穿透需要路由器开放端口接收外界请求(从外向内)。 而 Cloudflare Tunnel 采用的是 “由内向外”主动握手 的机制:
[家庭服务器 (运行 cloudflared 客户端)] ──(主动向外建立 HTTPS 握手)──► [Cloudflare 全球边缘节点] ▲ │ (用户直接通过域名访问) [普通互联网用户]
你在局域网设备上运行一个极轻量的客户端(cloudflared),它会自动向 Cloudflare 节点发起多条安全的双向连接。当外网用户访问你的专属域名时,Cloudflare 就会把流量通过这条安全隧道转给你,相当于在你的服务器和全球网络之间架起了一条“秘密管道”。
3. 前期准备:注册域名并接入 Cloudflare 托管
为了安全验证,Cloudflare Tunnel 强制要求你需要拥有一个域名并交由它托管。
- 准备域名:在阿里云、腾讯云或国外平台购买一个便宜的域名(如首年几块钱的
.top或.xyz域名)。
- 托管到 Cloudflare:
- 注册并登录 Cloudflare 控制台 (
dash.cloudflare.com)。
- 点击 Add a Site,输入你的域名,选择 Free(免费)计划。
- 按照提示,去你购买域名的平台上将 DNS 解析服务器(Nameservers)修改为 Cloudflare 指定的地址。
- 等待解析生效(通常几分钟即可)。
4. 实战部署:用 Docker 一键在内网设备部署 Connector
当域名托管成功后,我们开始在内网服务器(如 Windows 电脑、Linux、NAS、Mac)上部署连接器。
⚙️ 实操步骤:
- 获取配置 Token:
- 在 Cloudflare 控制台左侧菜单,点击 Zero Trust(首次使用需要绑定一张信用卡验证身份,整个过程完全免费,不会扣费)。
- 进入 Zero Trust 页面后,依次点击 Networks -> Tunnels -> Create a Tunnel。
- 命名你的隧道(如
my-home-server),点击保存。
- 页面会显示一串安装命令。找到命令行末尾形如
eyJh...的一长串字符,这就是你的 Tunnel Token,将其复制保存。
- 一键运行 Docker 容器: 在你的内网服务器终端运行以下命令(将命令末尾的
你的TOKEN替换为刚才复制的长字符):bash docker run -d \ --name cf-tunnel \ --restart always \ cloudflare/cloudflared:latest \ tunnel --no-autoupdate run --token 你的TOKEN
- 验证状态:回到 Cloudflare 网页后台,你会发现刚才新建的 Tunnel 状态已经变成了绿色的 HEALTHY (健康),说明管道已打通!
5. 对接上线:在 CF 后台绑定本地域名与端口
最后一公里,我们将你的公网子域名和局域网本地端口进行绑定。
⚙️ 实操步骤:
- 在 Cloudflare 网页后台,点击该 Tunnel 右侧的 Edit,进入 Public Hostname 标签页。
- 点击 Add a public hostname:
- Subdomain (子域名):填入你想要的名称(如
nas或web)。
- Domain (域名):下拉菜单中选择你刚才托管的域名。
- Type (协议):选择你的本地服务协议(通常为
HTTP)。
- URL (本地地址):输入你局域网内的本地 IP 和端口(例如
192.168.1.100:8080,如果容器和 CF 隧道在同一台机,直接输入localhost:8080即可)。
- 点击 Save hostname 保存。
🎉 见证奇迹的时刻:
现在,打开你手机的 5G 网络,在浏览器输入你设置的公网域名(如 https://nas.yourdomain.com)。你就会发现,不需要输入端口号,也无需配置任何证书,绿色的 HTTPS 安全锁已经完美挂上,本地的网页已经可以直接流畅访问了!
🏁 结语
Cloudflare Tunnel 简直是互联网基础设施的降维打击。它不仅帮我们省去了高昂的国内穿透服务费,更用“大厂级别的边缘盾牌”保护了我们家中的服务器免受公网黑客的直接袭扰。
需要分享项目或共享 NAS 的小伙伴,赶紧去试一下吧!