最近折腾了下使用第三方域名作为 SaaS 中的自定义主机名,来访问通过 CloudFlare Tunnel 发布的服务,走了点弯路,把一些要点记录简单记录如下:

如果是自己账户中的域名,不需要通过SaaS,直接在 CloudFlare Tunnel 中设置就行,略;

如果不是自己账户中的域名,需要进行如下几点设置:

  1. 在自己的 CF 账号中添加该第三方域名,只需要添加就行,其他什么都不用做,也无需拥有所有权
  2. 在 SaaS 中,将通过 CloudFlare Tunnel 发布的服务设置为回退源
  3. 将第三方域名 CNAME 记录设置为回退源的域名
  4. 在 SaaS 中,将第三方域名设置为自定义主机名,并完成 TXT 记录验证
  5. 在 CloudFlare Tunnel 中,使用第三方域名,使用和已发布的服务一样的设置来完成配置

其中最关键的就是第1步,只有完成第1步,才能在后续的第5步中使用第三方域名添加配置,否则无法添加。

完成添加后,就可以在自己域中删除掉这个第三方域名了,目前观察下来不影响后续的使用,即便你不删除,由于没法验证所有权,28天后也会被 CF 给清理掉。

此时再使用这个第三方域名去访问,可以成功连接到服务,完工!

原理很简单:其实完成了2、3、4步之后,CF 就能将访问第三方域名的流量路由给对应的 Tunnel 了,但是由于 Tunnel 中缺少第三方域名的配置,因而无法访问成功,第5步就是完成这个配置的,而第1步,是第5步能够正常添加配置的前提。

最后,也希望 Cloudflare 能够尽快完善 SaaS 在 Tunnel 中的使用,不要让用户这样曲线救国了。