通配符 CNAME 记录(*.example.com)合法吗

通配符 CNAME 符合 DNS 标准,但匹配取决于最近存在祖先、已有节点和委派,不是简单匹配所有子域。解释与普通记录共存、区域顶点及 TLS 通配符的区别。

最佳实践
加密网络与通信桥梁插画

一句话回答:通配符 CNAME 合法,但 DNS 通配符按最近存在祖先等规则生成应答,并非简单匹配所有未单独配置的子域。已有节点、委派和区域边界会影响结果;普通 CNAME 不能与同名 A/MX 等数据共存,区域顶点也不能使用普通 CNAME。

它能干什么

*.example.com.  300  CNAME  sites.hosting.com.

之后 a.example.com、blog.example.com、任意没单独配过记录的子域名,都会解析到 sites.hosting.com。多租户 SaaS({租户}.example.com)就靠它避免"每加一个租户配一条记录"。

四条关键规则

  1. 只兜底未定义的名字:已显式配置 blog.example.com A 192.0.2.4 后,blog 走 A 记录,通配符对它不生效——显式记录永远优先
  2. 同名不能共存其他记录:*.example.com 已有 CNAME 就不能再加它的 TXT/A 记录
  3. 不能用于根域名:example.com 本身必须有 SOA/NS,无法 CNAME(用 ALIAS/Flattening 解决)
  4. DNS 通配符不受一级限制:若 b.example.com 不存在,*.example.com 可为 a.b.example.com 合成答案;若 b 存在(包括空非终结节点),最近已存在祖先改变,需要检查 *.b.example.com。委派也会形成边界。不要与只匹配一个标签的 TLS 泛域名证书混淆。

与通配符 A 记录的对比

通配符 CNAME 通配符 A
指向 域名(跟随目标 IP 变化) 固定 IP
目标换 IP 自动跟随 要手动改
适用 指向平台/CDN 域名 指向自己的固定服务器

指 SaaS/托管平台用 CNAME;自己服务器的固定 IP 用 A 更直接。

配套提醒

  • 证书:通配符 DNS 通常要配泛域名证书(*.example.com),否则 HTTPS 到各子域名报证书错误
  • 源站校验:服务器/网关收到任意子域名的 Host 头要有兜底处理,避免陌生域名也落到你的应用

常见问题(FAQ)

Q:有些文章说通配符 CNAME 不合法,怎么回事?

A:那是把"CNAME 不能与其他记录共存"的规则误读了。通配符本身合法(RFC 1034/4592),限制只在"同一名字下 CNAME 不能与其他记录共存"以及"不能用于区域顶点"。具体控制台支持范围需看对应服务商文档,本文未进行现场测试。

Q:通配符 CNAME 指向的目标又是个 CNAME 可以吗?

A:技术上解析器会跟随链路,但不推荐——额外查询取决于应答中已有记录和缓存,排障也复杂。尽量指向最终目标。

Q:为什么我的 *.example.com 配了不生效?

A:按序排查:该子域名是否已有显式记录(优先于通配);本地 DNS 缓存(ipconfig /flushdns);TTL 未过期;部分服务商控制台要求输入 * 作为主机记录,确认没写成 *.example.com.example.com。


参考资料

本文依据官方资料核对,未进行现场运行测试;代码与配置示例需结合实际版本、权限和环境验证。

延伸阅读

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台