一次 CDN 网络故障的完整排查

发布时间:2026/6/25 17:34:42

一次 CDN 网络故障的完整排查 一次 CDN 网络故障的完整排查问题现象某天突然发现虎牙直播huya.com和力扣leetcode.cn在浏览器里打不开了但 B 站、GitHub 等网站一切正常。不是彻底打不开而是一直加载页面始终没有内容显示出来。之前这些网站都是可以正常访问的排除被墙的可能性也不是浏览器缓存的问题无痕模式同样复现。排查过程第一步网络连通性测试怀疑是 DNS 解析问题或者 IP 不通先 ping 一下pingwww.huya.compingleetcode.cnpingwww.bilibili.com三个域名都 ping 得通虎牙 7ms、力扣 10ms、B 站 25ms延迟都正常。排除物理断网。第二步HTTP 层面测试再用 curl 模拟浏览器请求试试curl-Ihttps://www.huya.comcurl-Ihttps://leetcode.cn结果两个都返回HTTP/1.1 200 OKHTML 内容完整返回。说明服务器是活的HTTPS 握手也没问题。这就很奇怪了——ping 通、curl 通为什么浏览器就是打不开第三步对比正常网站看看 B 站为什么是好的。B 站的 CDN 域名a.w.bilicdn1.com解析到了121.194.11.73这个 IP 段路由正常。再看看虎牙和力扣引用了哪些外部资源curl-shttps://leetcode.cn|grep-oPsrc|href|...发现力扣页面加载了大量来自static.leetcode.cn、assets.leetcode.cn的 JS 和 CSS 文件。测试这些子域名curl--connect-timeout3https://static.leetcode.cn# 结果超时000 状态码curl--connect-timeout3https://a.msstatic.com# 结果同样超时突破口出现了主页面 HTML 能拿到但页面渲染需要的 JS/CSS 文件所在的 CDN 域名超时了。第四步定位根因查一下这些超时的 CDN 域名解析到了哪里nslookupstatic.leetcode.cn# 结果43.137.171.248腾讯云 CDNnslookupa.msstatic.com# 结果43.137.171.248腾讯云 CDN追溯路由tracert-d43.137.171.248结果在第 5 跳之后全部超时——校园网出口路由器无法到达腾讯云43.x.x.x网段。对比 B 站 CDNtracert-d121.194.11.73路由正常3 跳出境。根因找到了力扣和虎牙的静态资源都托管在腾讯云 CDN 的43.x网段而当前网络环境校园网无法路由到该网段。主页面 HTML 能加载因为主站不在那个网段但没有 JS 和 CSS 文件浏览器就只能一直白屏加载中。第五步为什么会这样排查 DNS 配置nslookupstatic.leetcode.cnDNS 服务器是202.38.64.18校园网默认 DNS它把这两个 CDN 域名解析到了43.137.171.248。这是 CDN 智能调度的结果——腾讯云 CDN 在全国有大量节点不同 DNS 会解析到不同节点。校园 DNS 给指的这个节点恰好路由不可达。第六步修复把 DNS 从自动获取改成手动指定首选114.114.114.114备用223.5.5.5改完后验证nslookupstatic.leetcode.cn# 结果变成了116.196.148.192ping116.196.148.192# 23ms通了再清一下浏览器 DNS 缓存chrome://net-internals/#dns→ Clear host cache虎牙和力扣恢复正常。原理总结浏览器打开 leetcode.cn │ ▼ 拿到主页面 HTML ───────────── ✅ 主站在阿里云路由可达 │ ▼ 解析 static.leetcode.cn │ ├── 校园 DNS (202.38.64.18) → 43.137.171.248 → ❌ 路由不可达 │ └── 114 DNS (114.114.114.114) → 116.196.148.192 → ✅ 正常CDN内容分发网络把网站的 JS/CSS/图片缓存在全国各地的节点上用户就近访问所以同一个域名在不同 DNS 下会解析到不同 IP这个案例中不是网站挂了也不是网络断了而是 CDN 调度把你指到了一个你网络环境到不了的节点主页面 HTML 是服务器动态生成的所以 curl 能拿到但静态资源走 CDNCDN 节点不可达就白屏排查工具清单工具用途ping测 IP 连通性nslookup查 DNS 解析结果curl -I测 HTTP/HTTPS 可达性tracert -d追踪路由路径chrome://net-internals/#dns清浏览器 DNS 缓存一句话总结以后遇到浏览器一直转圈加载但不显示内容先看主页面能不能拿到curl再看页面上引用的 CDN 子域名能不能通——大概率是 CDN 调度烂了改 DNS 绕过去就行。

相关新闻