• ZSFan

    前几天写了篇文章 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 生效和证书签发通常需要几分钟,偶尔也会更久。

    在这个过程中,“证书状态”可能会显示“待验证”,而“主机名状态”已经有效。这属于正常情况,继续等待即可。

    图片

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

    图片

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

    图片

    图片

    图片

    主楼
  • MrTiger

    感谢分享,正好用到了,tunnel其实蛮好用的

    #1
  • chaixixi

    大佬,我有些不懂。我只有一个域名 a.com

    我穿透了一个项目,包含2个服务

    - api.a.com(后端)

    - cpa.a.com(前端)

    图文中说的

    - huiyuan.a.com

    - cdn.b.com

    这意味着我需要额外第二个域名b.com吗,另外域名我是在企鹅买的,这个优选是属于单独的服务需要额外购买吗

    #2
  • ZSFan

    就用一个域名也可以。你直接把两个域名的合并在一起就行了,或者是整一个二级域名啥的。

    #3

发表回复

登录后回复