上一篇 下一篇 分享链接 返回 返回顶部

用了 CDN 后,域名到底访问到了哪?一文看懂 DNS 解析链路

发布人:Minchunlin 发布时间:2026-06-04 08:32 阅读量:549

很多网站接入 CDN 后,最容易产生一个疑问:用户访问我的域名时,到底是访问到了 CDN 节点,还是直接访问到了源站服务器?

这个问题看起来简单,但真正排查时会牵涉到 DNS 解析、CNAME、CDN 调度、HTTPS 证书、回源地址、源站安全策略等多个环节。

尤其是跨境电商、外贸官网、图片站、下载站这类业务,如果只看一个 ping 结果,很容易误判。本文用通俗方式把 CDN 后的访问链路讲清楚,并给出实际排查命令和服务器配置建议。


一、用了 CDN 后,用户访问域名时到底访问到哪里?

正常情况下,域名接入 CDN 后,用户访问的第一目标不再是你的源站服务器 IP,而是 CDN 分配的边缘节点 IP。

简单链路可以理解为:

 
用户浏览器

本地 DNS / 递归 DNS

查询域名解析记录

命中 CDN 的 CNAME 记录

CDN 调度系统返回就近节点 IP

用户访问 CDN 节点

CDN 节点根据缓存情况决定是否回源

源站服务器
 

也就是说:

 
用户并不是直接访问源站,而是先访问 CDN 节点。
 

但 CDN 节点是否访问源站,要看资源是否已经缓存。

如果图片、JS、CSS、静态文件已经缓存,CDN 节点会直接返回内容;如果是首次访问、缓存过期、动态接口、登录请求,CDN 节点就会向源站服务器发起回源请求。


二、CDN 接入后,DNS 解析链路发生了什么变化?

没有 CDN 时,域名通常是直接 A 记录解析到源站 IP:

 
www.example.com → A记录 → 源站服务器IP
 

接入 CDN 后,常见方式是把域名解析成 CDN 提供的 CNAME:

 
www.example.com → CNAME → xxx.cdnprovider.com → CDN节点IP
 

实际访问时,DNS 查询并不是一步完成,而是多级解析:

 
用户 DNS

根 DNS

.com 顶级域 DNS

example.com 权威 DNS

返回 www.example.com 的 CNAME

继续解析 CDN 域名

CDN 调度返回节点 IP
 

所以,接入 CDN 后,真正重要的不是“域名有没有解析”,而是要看:

 
域名是否正确 CNAME 到 CDN
CDN 是否返回节点 IP
不同地区返回的节点 IP 是否不同
源站是否只允许 CDN 回源
 

三、如何查看域名当前访问到哪里?

1. 先看域名最终解析到了什么

Linux 服务器上可以使用:

 
dig www.example.com
 

重点看这几部分:

 
ANSWER SECTION:
www.example.com. 300 IN CNAME xxx.cdnprovider.com.
xxx.cdnprovider.com. 60 IN A 203.0.113.10
 

如果看到 CNAME 指向 CDN 域名,说明域名已经接入 CDN。

如果直接看到源站 IP,例如:

 
www.example.com. 300 IN A 45.125.xxx.xxx
 

那说明这个域名当前还是直接解析到源站,没有经过 CDN。


2. 查看完整 DNS 解析链路

可以使用:

 
dig +trace www.example.com
 

这个命令会从根 DNS 一路查到最终解析结果,适合判断解析链路是否完整。

重点看最后几段:

 
www.example.com.      300 IN CNAME xxx.cdnprovider.com.
xxx.cdnprovider.com. 60 IN A 203.0.113.10
 

如果中间出现解析中断、权威 DNS 无响应、CNAME 配置错误,就可能导致部分地区打不开网站。


3. 用 nslookup 查看本地 DNS 返回结果

Windows 或 Linux 都可以使用:

 
nslookup www.example.com
 

如果想指定 DNS 服务器查询,比如使用 8.8.8.8:

 
nslookup www.example.com 8.8.8.8
 

使用国内 DNS 查询:

 
nslookup www.example.com 223.5.5.5
 

这一步很重要,因为不同 DNS 返回的 CDN 节点可能不一样。

例如:

 
223.5.5.5 返回香港 CDN 节点
8.8.8.8 返回美国 CDN 节点
本地运营商 DNS 返回新加坡 CDN 节点
 

如果 CDN 调度不合理,用户访问延迟就会明显变高。


四、Ping 到的 IP 是源站 IP 还是 CDN IP?

很多人接入 CDN 后会直接执行:

 
ping www.example.com
 

然后看到一个 IP,就以为这是网站服务器 IP。这个判断并不严谨。

如果域名已经接入 CDN,ping 到的大概率是 CDN 节点 IP,而不是源站 IP。

例如:

 
ping www.example.com

Pinging www.example.com [203.0.113.10] with 32 bytes of data:
 

这个 203.0.113.10 可能只是 CDN 边缘节点。

要判断它是不是 CDN IP,可以从几个角度看:

 
1. dig 结果是否有 CNAME
2. IP 归属是否属于 CDN 厂商
3. 不同地区解析出的 IP 是否不同
4. 源站真实 IP 是否与 ping 到的 IP 不一致
 

如果你在香港服务器上执行:

 
curl -I https://www.example.com
 

看到类似响应头:

 
server: cloudflare
x-cache: HIT
cf-cache-status: HIT
 

或:

 
x-cache: HIT
via: cache-node
 

就说明请求大概率命中了 CDN 缓存节点。


五、CDN 节点和源站服务器之间是什么关系?

CDN 不是替代服务器,而是放在用户和源站之间的一层加速与防护网络。

常见结构如下:

 
用户

CDN边缘节点

源站服务器
 

CDN 主要负责:

 
缓存静态资源
就近调度访问
隐藏源站 IP
降低源站压力
抵御一部分恶意请求
改善跨地区访问速度
 

源站服务器仍然负责:

 
网站程序运行
数据库连接
动态接口处理
用户登录
订单提交
后台管理
真实业务数据
 

所以,CDN 能加速访问,但不能替代源站性能。如果源站 CPU、内存、磁盘 IO 或数据库本身很慢,即使加了 CDN,动态页面依然可能慢。


六、实际业务中推荐的源站服务器配置

对于接入 CDN 的网站,源站服务器不用盲目追求超大公网带宽,但要重点关注 CPU、内存、NVMe 磁盘和回源线路质量。

下面以外贸官网、跨境电商和图片资源站为例。

业务类型 推荐配置 适合场景
企业官网 / WordPress E3-1271 V3 / 16G / 240G SSD / 100M BGP 适合轻量官网、博客、展示站
跨境电商独立站 E-2334 / 32G / 960G NVMe / 100M BGP + 15M CN2 适合 WooCommerce、Shopify 辅助站、自建商城
图片站 / 下载站源站 Gold 6138 / 64G / 2×960G NVMe / 1G BGP 适合静态资源多、回源流量高的业务
API / SaaS 后端 AMD EPYC 7402P / 64G / 960G NVMe / CN2+BGP 适合接口型业务、海外访问和国内回源

如果网站主要用户在中国大陆,但源站放在香港,建议选择:

 
香港 CN2 / CMIN2 / CU 三网优化线路
 

如果网站用户分布在全球,可以选择:

 
香港 BGP 多线 + CDN 全球节点
 

如果静态资源较多,例如图片、视频切片、安装包下载,则建议:

 
源站使用 1G BGP 带宽
CDN 缓存静态文件
源站限制只允许 CDN 回源 IP
 

七、如何判断请求是否真的经过 CDN?

1. 查看 HTTP 响应头

执行:

 
curl -I https://www.example.com
 

重点看:

 
x-cache
cf-cache-status
via
age
server
cdn-cache
 

常见结果:

 
x-cache: HIT
age: 3600
 

表示命中 CDN 缓存。

 
x-cache: MISS
 

表示 CDN 没有缓存,需要回源。

 
x-cache: BYPASS
 

表示该请求被规则绕过,没有缓存。

如果所有请求都是 MISS,说明 CDN 虽然接入了,但缓存规则可能没有配置好。


2. 对比 CDN 域名和源站 IP

假设源站 IP 是:

 
45.125.xxx.xxx
 

域名解析结果是:

 
dig www.example.com
 

返回:

 
www.example.com. CNAME xxx.cdnprovider.com.
xxx.cdnprovider.com. A 203.0.113.10
 

说明用户访问的是 CDN 节点 203.0.113.10,不是源站 45.125.xxx.xxx

然后可以直接测试源站:

 
curl -I http://45.125.xxx.xxx -H "Host: www.example.com"
 

这条命令可以模拟 CDN 回源访问源站时的请求。

如果这个请求正常,说明源站可以响应对应域名。

如果返回 403、404、证书错误、默认站点页面,就说明源站虚拟主机或 Nginx 配置可能有问题。


八、CDN 接入后最常见的几个问题

1. 域名解析到了 CDN,但网站打不开

常见原因:

 
源站 IP 填错
源站端口未开放
源站防火墙拦截 CDN 回源
CDN 回源协议配置错误
源站没有绑定该域名
 

排查顺序:

 
dig www.example.com
curl -I https://www.example.com
curl -I http://源站IP -H "Host: www.example.com"
 

如果直接访问源站 IP 加 Host 正常,但访问 CDN 不正常,问题大概率在 CDN 配置。

如果源站 IP 加 Host 也不正常,问题在源站 Web 服务。


2. HTTPS 证书正常,但访问还是报错

CDN HTTPS 涉及两段连接:

 
用户浏览器 → CDN
CDN → 源站
 

很多人只配置了第一段证书,忽略了第二段。

建议配置方式:

 
用户到 CDN:HTTPS
CDN 到源站:HTTPS
源站证书:有效证书或 CDN 信任证书
 

如果 CDN 回源使用 HTTPS,而源站证书过期、域名不匹配,就可能出现 502、525、526 等错误。

源站测试:

 
openssl s_client -connect 源站IP:443 -servername www.example.com
 

这条命令可以检查源站在指定域名下是否能正确返回 HTTPS 证书。


3. 后台登录异常、验证码失效、购物车丢失

这类问题通常不是 DNS 问题,而是 CDN 缓存规则问题。

后台、登录、购物车、订单接口不能随便缓存。

建议 CDN 规则中排除:

 
/wp-admin/*
/wp-login.php
/cart/*
/checkout/*
/user/*
/api/*
/admin/*
 

对于 WordPress、WooCommerce、Laravel、ThinkPHP 等程序,动态接口建议设置:

 
Cache-Control: no-store
 

或者在 CDN 中配置不缓存动态路径。


4. 源站真实 IP 暴露后,CDN 防护失效

接入 CDN 后,如果源站 IP 仍然可以被直接访问,那么攻击者可以绕过 CDN 直接打源站。

正确做法是:

 
源站防火墙只允许 CDN 回源 IP
源站 Web 服务绑定域名访问
源站 IP 直接访问返回 403
后台路径增加访问限制
关闭不必要端口
 

Nginx 可以简单处理源站 IP 直接访问:

 
server {
listen 80 default_server;
server_name _;
return 403;
}
 

正式业务域名单独配置:

 
server {
listen 80;
server_name www.example.com;
root /www/wwwroot/example.com;
}
 

这样即使别人知道源站 IP,也无法直接访问网站内容。


九、CDN + 香港服务器的推荐架构

对于面向国内和海外用户的网站,比较稳妥的架构是:

 
用户

CDN 全球节点

香港 CN2 / BGP 源站服务器

数据库 / 缓存 / 文件存储
 

推荐源站方案:

 
CPU:Intel E-2334
内存:32GB DDR4
硬盘:960GB NVMe SSD
带宽:100M BGP + 15M CN2
IP:1-3个
系统:Ubuntu 22.04 / Debian 12 / CentOS 7.x
适合:外贸官网、跨境商城、企业站、API后端
 

如果是资源型网站,可以升级为:

 
CPU:Gold 6138
内存:64GB
硬盘:2×960GB NVMe
带宽:1G BGP
适合:图片站、下载站、素材站、静态资源回源
 

如果网站动态请求较多,例如会员系统、订单系统、后台管理频繁访问,更建议优先提升:

 
CPU 单核性能
NVMe 磁盘 IO
数据库性能
源站线路质量
 

而不是只盯着 CDN 节点速度。


十、完整排查流程:从 DNS 到源站一步步看

当用户反馈“用了 CDN 后网站慢、打不开、解析不对”,可以按下面顺序排查。

第一步:确认 DNS 是否走 CDN

 
dig www.example.com
 

看是否有 CNAME 指向 CDN。


第二步:查看完整解析链路

 
dig +trace www.example.com
 

确认权威 DNS、CNAME、最终 A 记录是否正常。


第三步:测试不同 DNS 返回结果

 
nslookup www.example.com 223.5.5.5
nslookup www.example.com 8.8.8.8
nslookup www.example.com 1.1.1.1
 

观察不同地区或不同 DNS 是否返回不同 CDN 节点。


第四步:查看是否命中 CDN 缓存

 
curl -I https://www.example.com
 

重点看:

 
x-cache
age
via
server
cf-cache-status
 

第五步:模拟直接回源

 
curl -I http://源站IP -H "Host: www.example.com"
 

如果 HTTPS 回源:

 
curl -Ik https://源站IP -H "Host: www.example.com"
 

第六步:检查链路延迟和丢包

 
mtr -rw www.example.com
 

如果要测试源站:

 
mtr -rw 源站IP
 

这里要分清楚:

 
mtr 域名:测试的是 CDN 节点链路
mtr 源站IP:测试的是用户到源站链路
 

这两个结果不能混在一起判断。


十一、一个容易忽略的细节:CDN 加速的是访问,不是解析本身

DNS 解析只是告诉用户“应该访问哪个 IP”。
CDN 真正发挥作用的是用户连接到 CDN 节点之后,由 CDN 节点处理缓存、调度和回源。

所以访问慢可能有三类原因:

 
DNS 调度慢:解析到了不合适的 CDN 节点
CDN 节点慢:节点负载高或线路绕路
源站慢:CDN 回源慢、程序慢、数据库慢
 

排查时一定要分层看:

 
DNS 层:dig / nslookup
链路层:ping / mtr
HTTP 层:curl -I
源站层:Nginx日志 / PHP日志 / 数据库慢查询
 

只看一个 ping,很难判断真正问题。


结语

用了 CDN 后,域名访问到哪里,不能只靠感觉判断。正确的理解是:用户先访问 CDN 节点,CDN 再根据缓存情况决定是否回源。DNS 解析链路中,CNAME、CDN 调度、节点 IP、源站回源地址,每一层都可能影响最终访问效果。

对于企业官网、跨境电商、下载站和图片站来说,CDN 能提升访问体验,但源站服务器依然是核心基础。合理的做法是:CDN 负责加速和抗压,香港 CN2 / BGP 源站负责稳定回源和业务处理,再通过 DNS、HTTP 响应头、回源测试和日志分析,把访问链路真正看清楚。

目录结构
全文