如何判断一个网站用了哪家 CDN?四种信号交叉验证
CDNBench 技术团队发布于 2026-07-288 分钟阅读

为什么识别 CDN 没那么简单
很多人以为查一下网站的 IP 就能知道它用了哪家 CDN,实际上 CDN 大量使用 Anycast、多层嵌套和智能解析,单一信号往往会误判。可靠的识别需要多重信号交叉验证。
信号一:CNAME 链(最强信号)
对目标域名做 DNS 查询,追踪它的 CNAME 指向。绝大多数 CDN 都要求用户把域名 CNAME 到厂商的调度域名:
*.cdn.dnsv1.com→ 腾讯云 CDN*.alicdn.com/*.kunlun*.com→ 阿里云 CDN*.akamaiedge.net→ Akamai*.cloudfront.net→ AWS CloudFront
CNAME 是最强的信号,因为它是接入 CDN 的必要配置。
信号二:HTTP 响应头指纹
发一个 HEAD 请求,观察响应头里的特征字段:
| Header | 厂商 |
|---|---|
CF-Ray | Cloudflare |
X-Amz-Cf-Id | CloudFront |
X-Served-By | Fastly |
Server: tengine | 阿里系 |
信号三:IP 段与 ASN
解析出边缘 IP 后,查询它归属的自治域号(ASN)。例如 Cloudflare 的 AS13335、Fastly 的 AS54113。每家 CDN 都有公开或可枚举的 IP 段。
信号四:TLS 证书
抓取握手阶段的证书颁发信息作为辅助判断,尤其在 CNAME 被隐藏(如通过 A 记录直连)时有用。
现实中的复杂情况
真实世界里经常遇到:
- 多 CDN 叠加:大站可能网页用 Cloudflare、视频用另一家。
- CDN 套 CDN:外层 Akamai 套内层自建,DNS 只能看到最外层。
- 国内厂商指纹独立:腾讯云、阿里云的指纹和国际厂商完全不同,必须单独维护规则库。
因此,识别结果应当返回多个候选厂商 + 各自置信度 + 判定证据,而不是给出一个"100% 确定"的答案。诚实标注不确定性,才是可信的做法。
