前几天写了篇文章 Cloudflare 优选加速保姆级图文教程 有佬友问Tunnel怎么优选,于是这篇宝宝~级教程也搓出来了
涉及的域名比较多,很容易填错。为了方便说明,文中使用下面这组示例:
用途 |
示例 |
|---|
隧道名称 |
cdn |
回源域名 |
huiyuan.ip123.qzz.io |
访问域名 |
xui.sub6.qzz.io |
优选目标 |
cdn.091224.xyz |
源站服务 |
http://100.85.7.84:2053 |
实际配置时,把这些内容换成你自己的域名、IP 和端口即可。
首先域名要托管在Cloudflare,并且本地服务可以正常访问。
一、创建 Cloudflare Tunnel
登录 Cloudflare 控制台,在左侧菜单中找到并打开 Zero Trust。

进入 Zero Trust 后,依次打开 网络 → 概述,点击页面上的 管理隧道。在右侧弹出的面板中找到“创建新 cloudflared 隧道”,点击 添加隧道。

在“选择隧道类型”页面选择 Cloudflared,然后进入隧道命名页面。在“隧道名称”输入框中填写一个烧烧~的名称;本文以 cdn 为例,你也可以根据实际用途自行命名。确认名称无误后,点击右下角的 保存隧道。

二、安装并运行连接器
隧道创建完成后,Cloudflare 会显示连接器的安装说明。根据运行环境选择操作系统和架构,例如 Windows 64-bit,然后按页面提示下载并安装 cloudflared。
安装完成后,以管理员身份打开 PowerShell 或命令提示符,运行页面提供的安装命令。命令中的令牌由 Cloudflare 为当前隧道生成,直接使用控制台里显示的内容,不要照抄截图中的示例。

命令执行后,如果终端依次显示 Installing cloudflared Windows service、Agent service for cloudflared installed successfully,并重新回到命令提示符,就表示 Windows 服务已经安装成功。

稍等片刻,页面下方会出现连接器信息。看到状态变成 已连接,说明 cloudflared 已经正常运行,此时点击右下角的 下一步。

三、添加回源域名路由
先添加一条供 Cloudflare 回源使用的路由。主机名填写准备好的回源域名,例如 huiyuan.ip123.qzz.io;服务类型根据实际情况选择 HTTP、HTTPS 或其他协议;URL 填写服务所在设备的 IP 地址。
如果服务运行在默认端口,可以只填 IP;如果使用了其他端口,则必须写成 IP:端口。例如:
100.85.7.84:2053

检查无误后保存配置。
四、为访问域名添加已发布应用程序路由
回到 Zero Trust,在左侧进入 网络 → 连接器,打开刚才创建的 cdn 隧道。

切换到 已发布应用程序路由,点击右上角的 添加已发布应用程序路由。

这一次,主机名填写最终要对外访问的域名,例如 xui.sub6.qzz.io。服务协议要与实际服务一致,URL 则填写服务 IP 和对应端口,例如:
HTTP://100.85.7.84:2053
Cloudflare 的界面会单独显示协议下拉框,因此 URL 输入框里通常只需要填写 100.85.7.84:2053。

保存后,Tunnel 这一部分就配置好了。
五、在回源域名下添加优选 CNAME
回到 Cloudflare 主控制台,进入回源域名所在的站点。打开 DNS → 记录,添加一条 CNAME 记录:
- 名称:自定义一个便于记忆的前缀,例如
cdn;
- 目标:填写你的优选域名,例如
cdn.091224.xyz;
- 代理状态:关闭,保持为 仅 DNS;
- TTL:保持自动即可。
保存后,这条记录的完整域名就是 cdn.ip123.qzz.io。后面修改访问域名的 DNS 时会用到它。

六、设置自定义主机名的回退源
仍然停留在回源域名所在的站点,进入 SSL/TLS → 自定义主机名。第一次使用时,需要先添加回退源。
回退源填写前面配置好的回源域名,例如 huiyuan.ip123.qzz.io,然后点击 添加回退源。

添加完成后点击 刷新。Cloudflare 验证需要一点时间,等“回退源状态”变成 有效 后再继续。

七、修改访问域名的 DNS 记录
接下来进入访问域名所在站点的 DNS 管理页面。
创建 Tunnel 已发布路由时,Cloudflare 通常会自动添加一条 CNAME 记录。找到访问域名对应的记录,把它的目标改成第五步创建的完整 CDN 域名,例如:
cdn.ip123.qzz.io
同时关闭代理,保持为 仅 DNS,然后保存。

这一步完成后,当前示例的解析链路就是:
xui.sub6.qzz.io
→ cdn.ip123.qzz.io
→ cdn.091224.xyz
八、添加自定义主机名
再次回到回源域名所在站点的 SSL/TLS → 自定义主机名 页面,点击 添加自定义主机名。
“自定义主机名”填写最终的访问域名,例如 xui.sub6.qzz.io。最低 TLS 版本、证书类型和验证方法一般保持默认即可,其中证书验证建议选择 TXT 验证。

提交后,新的自定义主机名会先显示为“正在初始化”或“待验证”。展开这一项,可以看到 Cloudflare 给出的 主机名预验证 TXT 名称 和 TXT 值。

进入访问域名所在站点的 DNS 页面,按 Cloudflare 给出的内容添加 TXT 记录。示例中的记录名称类似:
_cf-custom-hostname.xui.sub6.qzz.io
TXT 值必须以你自己控制台中显示的内容为准。不要复制本文截图里的 UUID,因为每个自定义主机名生成的值都不同。

九、添加 DCV CNAME,保证证书可以自动续期
除了 TXT 所有权验证,页面下方还会显示一条 自定义主机名的 DCV 委派 记录。这条 CNAME 用于自动签发和续期证书,建议一起配置,避免证书到期后无法续签。
记录名称通常是:
_acme-challenge.<访问域名前缀>
例如访问域名是 xui.sub6.qzz.io,前缀就是 xui。记录目标则完整复制 Cloudflare 页面右侧给出的 dcv.cloudflare.com 地址。

回到访问域名的 DNS 页面,新建 CNAME 记录:
- 名称:将
<访问域名前缀> 替换成真实前缀,例如 _acme-challenge.xui;
- 目标:粘贴 Cloudflare 提供的完整 DCV 地址;
- 代理状态:关闭,保持为 仅 DNS。

十、等待验证完成
记录保存后,回到自定义主机名页面点击 刷新。DNS 生效和证书签发通常需要几分钟,偶尔也会更久。
在这个过程中,“证书状态”可能会显示“待验证”,而“主机名状态”已经有效。这属于正常情况,继续等待即可。

当“证书状态”和“主机名状态”都变成 有效,整个配置就完成了。

现在用浏览器打开访问域名,应该已经可以正常进入对应服务。


