通配符 DNS

协议和标准
一个DNS记录,匹配对不存在的子域的请求。
← 返回词汇表

什么是通配符 DNS?

通配符 DNS 是一种 DNS 配置,使用星号(*)匹配没有显式 DNS 记录的任意子域名请求。例如,*.example.com 会捕获 blog.example.com、app.example.com 和 anything.example.com 等未定义子域名的查询,并将其解析到指定目标。

通配符 DNS 如何工作

DNS Zone for example.com:

├── example.com A 192.0.2.1 (explicit)

├── www.example.com A 192.0.2.1 (explicit)

├── mail.example.com A 192.0.2.2 (explicit)

└── *.example.com A 192.0.2.10 (wildcard)

Query: random.example.com → 192.0.2.10 (matched by wildcard)

Query: www.example.com → 192.0.2.1 (explicit takes priority)

通配符记录语法

*.example.com.    3600    IN    A       192.0.2.10

*.example.com. 3600 IN CNAME catch-all.example.com.

*.example.com. 3600 IN MX 10 mail.example.com.

常见使用场景

多租户 SaaS 应用

*.myapp.com → Single server handles:

├── customer1.myapp.com

├── customer2.myapp.com

├── customername.myapp.com

└── (unlimited subdomains)

开发环境

用户生成内容

通配符优先级规则

记录查询 test.example.com 时
test.example.com(显式记录)✓ 优先匹配
*.example.com(通配符)没有显式记录时匹配

显式记录始终优先于通配符。

局限性

1. 只匹配一级*.example.com 不匹配 a.b.example.com

2. 不能用于顶点:不允许 *.com

3. 安全注意事项:可能捕获不希望处理的子域名

4. SSL 复杂性:需要通配符 SSL 证书

DNS 配置示例

; Zone file

$ORIGIN example.com.

@ A 192.0.2.1 ; apex

www A 192.0.2.1 ; explicit www

* A 192.0.2.10 ; everything else

* MX 10 mail.example.com. ; wildcard mail

最佳实践

1. 谨慎使用:确有需要时才启用

2. 配合 SSL:获取通配符证书

3. 应用层处理:服务器必须正确路由子域名

4. 监控使用情况:留意意外的子域名访问

5. 显式覆盖:为已知子域名创建专用记录

通配符 DNS 无需为每个子域名单独创建记录,即可灵活处理子域名,特别适合动态应用和多租户平台。

将知识付诸实践

使用 DomScan 的 API 检查域名可用性、健康状态等。