
1. 操作:在发生“下载出错 CDN 错误”时,先在同一网络、同一浏览器、同一设备上重复一次操作以稳定重现问题。记录重现时间、具体 URL、涉及账号与用户 IP(可在 whatismyip.cn 查看)。
2. 操作步骤:打开 Chrome -> F12 -> Network,选中 Preserve log,复现错误。右键任一请求选择 “Save all as HAR with content” 保存 HAR 文件。同时切换 Console 看是否有 CORS/TLS/JS 报错,截图并保存控制台错误文本。
3. 操作:在 Network 中找到视频请求(通常为 .mp4/.ts/.m3u8),查看响应状态是否为 206(Partial Content)或 200。重点检查响应头:Accept-Ranges、Content-Length、Content-Range、Cache-Control、Content-Type、x-cache/x-cache-status。若非 206,尝试用 curl 手工请求带 Range:
curl -I -H "Range: bytes=0-1" "https://example.com/video.mp4"
4. 操作:用 curl 带 -v 参数抓取完整交互,观察 TLS 握手、重定向、响应码与头部。命令示例:
curl -v -H "Range: bytes=0-1" "https://cdn.example.com/path/video.mp4" -o /dev/null
若返回 403/404/502/503/504/520/522 等错误,记录完整输出并保存为文本供后续分析。
5. 操作:在终端执行 traceroute/tracert 或 mtr 来查看到 CDN 边缘节点的路由是否有丢包或中断;用 dig 或 nslookup 检查域名解析是否指向预期的 CDN CNAME/IP。
示例命令:
traceroute cdn.example.com
dig +short cdn.example.com
6. 操作:用 openssl s_client 检查证书是否过期或链不完整:
openssl s_client -connect cdn.example.com:443 -showcerts
同时核对浏览器 Console 中的 CORS 报错(Access-Control-Allow-Origin)或 Mixed Content(http/https 混用)问题。
7. 操作:在源站查找对应时间点的访问日志(Nginx/Apache/S3 访问日志),筛选出客户端 IP、请求路径、时间戳、响应码与请求 ID。向 CDN 服务商索取 edge/request-id 日志并保存。准备的内容包括:重现步骤、时间点(UTC)、HAR 文件、curl 输出、traceroute/dig 输出、源站与 CDN 日志片段、屏幕截图与视频录制。
8. 操作:必要时在客户端做抓包(Wireshark 或 tcpdump)截取 pcap,过滤目标 IP 与端口,重点看 TLS 握手及 HTTP/2 流错误。可用 wget/curl 直接下载整段视频,或使用 ffmpeg 拉流验证播放是否正常:
ffmpeg -i "https://cdn.example.com/video.m3u8" -c copy -t 10 test.ts
抓包与 ffmpeg 输出一并提交给 CDN 支持,能极大加速定位(是边缘返回错误还是传输中断)。
问:为什么回放或下载会直接提示“下载出错 CDN 错误”?
答:常见原因包括 CDN 边缘节点与源站连接异常、请求被 WAF/防火墙拦截、凭证/签名(如 S3 presigned URL)过期、响应头缺少 Range 支持、TLS/证书问题或 DNS 解析到错误 IP。通过上面的 HAR、curl 和 CDN edge 日志可以快速区分是哪一层出现异常。
问:如何在短时间内判断问题发生在客户端网络还是 CDN/源站?
答:先在不同网络(移动/家庭/公司)和不同设备上复现;用 curl 从本地和云端(如 AWS EC2)发起同样请求;若云端和本地都失败多为 CDN/源站问题;若只有某一网络失败,检查 DNS、路由(traceroute)、运营商黑名单或防火墙规则。
问:向 CDN 或运维提交工单时我需要提供哪些关键诊断信息?
答:必备项:重现步骤与时间点(UTC)、受影响的完整 URL、HAR 文件、浏览器 Console 截图、curl -v 输出文本、traceroute/dig 输出、源站与 CDN edge 日志片段、用户 IP、示例请求 ID(若有)。越完整越有利于快速定位与恢复。