
前置条件#
使用 Cloudflare 的 Tunnel 服务需要使用 cf 提供的域名解析。
如果没有域名,建议花钱注册,很便宜(不推荐找免费域名,Freenom 已停止用户申请,如果想碰碰运气,可以申请 nom.za 域名,参考:教程,我等了十多天还在显示 Pending)
如果没有域名,可以注册免费的 US.KG 域名,参考这篇文章:《注册 US.KG 免费域名》
另外,服务有免费的额度,但使用服务前需要绑定信用卡。
添加 Website#

选择免费方案

获取到 NS

得到 Cloudflare nameservers 地址
grace.ns.cloudflare.com
todd.ns.cloudflare.com
在购买域名的地方配置上这个 NS 地址,等待一段时间后,面板上显示 “Active” 即配置完成

创建隧道(Tunnel)#
Tunnel 功能的入口不太好找,点击侧边栏 Zero Trust,跳转后找到 “Networks” - “Tunnels”

首次使用需要填写 team name 和付款方式

Free,启动!

点击 “Create a tunnel” 创建隧道,选择 “Cloudflared” 类型

创建名为 “vpc-01” 的 Tunnel

安装 Connector,注意一个 Tunnel 搭配一个 Connector,这个 Connector 作为 Agent 运行在设备上,即 Cf 网络跟设备建立起了一个安全的隧道

根据面板的命令安装 cloudflared 类型的 Connector

执行安装
$ sudo cloudflared service install eyJhIjoiYj...
(可选)如果机器已安装过,需要重新安装服务,需要先卸载
$ sudo cloudflared service uninstall

服务启动后,Connectors 处可以看到已有机器连接

下一步,添加转发规则

如上配置即通过 https://abc.donx-done.xyz 访问内网服务器的 http://127.0.0.1:3000 端口提供的 HTTP 服务

这就是 Tunnel 的用法
为服务添加额外验证#
可以使用 Application 功能为服务添加额外的安全验证。
还是在 Zero Trust 页面的左侧区域,点击 “Access” - “Applications”,选择 Self-hosted 类型

填写要保护的域名,跟 Tunnel 规则中的域名相同

添加访问策略


允许配置规则如验证邮箱后缀、IP 地址、国家地区等
其余配置暂保持默认,创建即可

刷新网站,可以看到 CF 的访问保护已开启

输入邮箱,点击发送,会收到一个验证码,填入后即可访问服务

补充#
使用 CloudFlare Tunnel 有如下用途,摘自参考一

总结#
之前体验了 Tailscale 提供的服务 Funnel —— 《Tailscale 异地组网服务使用体验记录》
相较于 Funnel,CloudFlare Tunnel 更容易使用,它将用户内网的服务通过 CF Connector Agent 连接到 CF 网络暴露到互联网,由 CF 确保链路安全,免费用户可白嫖 HTTPS 和访问防护等服务,侧重内网穿透。
而 Tailscale 则更侧重于为用户提供安全的设备间组网,认证设备间的共享和访问,其中的 Funnel 更像是 Tailscale 整体服务的一个子功能,跟 Tunnel 功能类似,单从暴露服务来说,我认为 CloudFlare Tunnel 更加易用。
以个人用户的 NAS 为例,Tailscale 和 CloudFlare Tunnel 选择考量如下(GPT-4o 回答)
如果你希望你的 NAS 服务可以被公网访问(例如分享某些资源给非技术用户或合作伙伴),并且希望利用 Cloudflare 的安全和性能增强功能,选择 Cloudflare Tunnel
如果你主要是自己和少数信任的设备需要访问你的 NAS,并且不想将服务公开到互联网,可以选择 Tailscale 来实现安全内网访问,Tailscale 提供了很好的安全性和便捷性,并且很适合需要私密、点对点连接的场景。
总结来说,Cloudflare Tunnel更适合公开访问和利用高级安全功能,而Tailscale更适合创建一个安全私人网络来访问你的 NAS。根据你的具体需求和首要考虑点(安全性、便捷性、公开访问需求等),你可以做出相应选择。