第二篇就写一下困扰了我很久的一个小问题,虽然无伤大雅,但是我想着难受
省流
在 Cloudflare 在域管理中,选中隧穿的那个域名,选择配置规则。

然后在规则模板中,选择 从根重定向到 WWW

然后在编辑页面内,他会自己填写好大部分内容,把二级域名想重定向到三级域名的地址填写到 目标 URL ,勾上保修查询字符串,一个简单的重定向就做好了
比如我的就是 951211.xyz → blog.951211.xyz

保存一下,然后在概览页有个重定向的规则就可以了

现在就可以用二级域名直接访问了。
心路历程
使用Cloudflare大善人的隧穿把内网服务映射到外网相信很多人会,在没人教的情况下,我跟着一步步摸索出来了。
(如果有人不会,然后还在评论区说了,那我就出个Docker的手把手教程,没人说那就不写,反正这个博客也没人看)
我这次折腾的是怎么把隧穿出来的地址不使用三级域名而直接使用二级域名。
我的博客映射的地址是blog.951211.xyz,但是我不喜欢,我就想要951211.xyz能直接进入我博客的首页。
首先我就和其他页面一样,进入隧穿管理页,添加,然后新增的页面不写三级域名,然后保存,它也能给我生成DNS记录,有模有样,甚至还和我说使用了CNAME拉平然后能让我访问。


一切搞好后,满心欢喜进去看,意外是不出意外地来了。

又重新部署了一遍,发现还是不行,于是我意识到,不是操作问题,是又到了我的知识盲区了。
查了一串网页后发现貌似这个拉平没什么用,于是开始学习为什么隧穿不能直接做二级域名
(AI)回答
根域名不能直接使用 CNAME 记录。
Cloudflare Tunnel依赖 CNAME完成绑定。
所以:
👉951211.xyz失败
👉www.951211.xyz正常DNS 有一条硬规则:
CNAME 记录不能存在于区域顶级(Zone Apex)
区域顶级指什么?
👉951211.xyz本身原因很朴素:
根域名 必须同时承载
SOA
NS
CNAME 的语义是「完全别名」
两者在规范里互斥
所以 DNS 标准直接禁止了这件事。
Tunnel 的工作方式很明确:
cloudflared 在你内网运行
Cloudflare 在公网侧
两者通过 CNAME → 随机 UUID 域名 对接
你现在用的就是这一条:
951211.xyz → xxxxx.cfargotunnel.com这一步 只能用 CNAME
而根域名 不能用 CNAME👉 所以 Tunnel 无法直接挂在根域名
根域名
951211.xyz
它 不能绑定 Tunnel
但它 能接收请求你要做的事只有一件:
请求一进来,就立刻让它走到 www
这个动作叫:
重定向(英语:Redirect)
看懂了吗?我也没怎么看懂,反正我就只知道直接搞不行,需要一个重定向。
然后又是各种找菜单,然后按照上面省流的方法,让我通过二级域名能访问到三级域名,完结撒花
结语
cf的功能是真的多,找都找了半天。
这个大学不是学了吗?啊?学了吗?我忘了诶 (´・ω・`)?