先做基础对比:从多个地域和不同网络(移动/电信/联通/云服务商)对同一资源做并发下载测试,如果在多数节点都出现持续低速并且峰值很低,则可能存在CDN被限速或上游带宽瓶颈。
通过 curl -I 检查边缘节点返回头部,如 X-Cache、Via、Age,以及是否有 429/503/509 等代表限速/流量受控的状态码;这些是判断的直接证据。
先对比边缘与源站:若边缘命中(cache hit)也很慢,倾向于CDN网络或边缘限速;若边缘命中率低且源站慢,问题可能在源站或回源链路。
常用工具包括 curl(HTTP下载速率)、iperf3(TCP/UDP带宽测试)、mtr/traceroute(路由与丢包追踪)、ping(延迟)、tcpdump/wireshark(抓包分析)和浏览器开发者工具(HTTP/资源加载时间)。这些组合能快速区分链路、协议、应用层问题。
curl 测速:curl -o /dev/null -s -w "%{speed_download}\n" https://example.com/file
iperf3:一端 iperf3 -s,另一端 iperf3 -c server_ip -P 10 -t 30 用并发流检测吞吐。
mtr:mtr -r -c 50 target_ip,用于定位丢包与跳数延迟异常点。
使用云主机或第三方测速节点(如 speedtest-cli、第三方检测平台)从不同国家/运营商同时测试,判断是否为单点ISP限速或全球性CDN策略。
关注带宽(bits/sec)、并发连接数、请求速率(RPS)、响应时延(TTFB)、回源流量、缓存命中率(cache hit ratio)和错误率(4xx/5xx)。TCP层看重重传、拥塞窗口(cwnd)、窗口缩小等指标。
CDN边缘访问日志(edge logs)记录用户IP、响应时间、返回码、边缘/回源状态;源站日志记录回源请求量与延迟;防火墙/WAF 与 DDoS 日志记录是否触发限流规则。
用 tcpdump 抓包分析三次握手、重传、RST、延迟与 TLS 握手,配合 iftop/nethogs、netstat/ss 检查实时连接与上行下行流量分布。
ISP 流量整形或中间链路丢包会导致整体带宽下降。通过 traceroute/mtr 定位哪一跳出现高丢包或延迟,结合不同运营商测试判断是否为链路限速。
TCP 性能受拥塞控制和窗口大小影响:如果看到大量重传或 cwnd 缩小,可能是链路丢包或 latency 导致的吞吐下降。iperf3 与抓包可验证。
CDN 可能对单 IP 或单 URL 做并发连接数、带宽配额、请求速率限制,或云厂商为防滥用启用速率策略。查看 CDN 控制台的限速策略、请求拒绝记录以及边缘返回的限速头(如 Retry-After)。
步骤一:复现问题并记录基线(时间、区域、资源、用户IP、速率);步骤二:比对边缘与源站响应头与日志,确认是边缘限速还是回源瓶颈;步骤三:使用 mtr/traceroute/iperf3 定位链路或带宽限制;步骤四:检查源站(nginx/Apache)与负载均衡器是否有限速配置(limit_conn、limit_req、limit_rate);步骤五:根据定位结果采取措施并监控效果。
检查返回头:curl -sI https://site | egrep -i "x-cache|via|age|server"
源站连接与限制:ss -s、netstat -anp、cat /proc/net/netstat、检查 nginx conf 中 limit_req_zone/limit_conn_zone
抓包复核:tcpdump -i eth0 host CDN_edge_ip and port 443 -w trace.pcap
如确认为CDN限速,可临时绕过CDN直连源站以确认并缓解(在DNS或hosts调整),长期则与CDN客服联系调整配额或修改策略;若为源站瓶颈,增加回源带宽或扩容、优化缓存策略、压缩资源并开启 HTTP/2 或 QUIC(HTTP/3)以提高并发效率。
