logo
1
0
Login

WarmCache

WarmCache 是一个针对中国大陆主要运营商节点的 CDN 预热工具。它会通过 DoH(HTTPS) 查询遍布全国各地的递归 DNS,收集实际缓存节点 IP,然后对给定资源执行并发预热和命中校验,帮助你在正式流量到来前抢先把内容塞进 CDN 边缘缓存。

运行环境

  • Python 3.10 及以上(脚本使用了 | 类型标注和 asyncio.run
  • aiohttppip install -r requirements.txt

快速开始

pip install -r requirements.txt python main.py --url https://example.com/{1..100}.txt

默认会以 HTTPS DoH 解析 A 记录,并在预热阶段对每个节点执行 3 次带随机延迟的请求。

URL 模式

  • 单 URL:--url https://example.com/1.txt
  • 范围 URL:--url https://example.com/{1..100}.txt
    • 支持升序、降序;
    • 自动按最大位数补零,例如 {001..050}

主要参数

参数默认值说明
--url必填待预热的资源 URL 或范围。
--dohhttps://doh.pub/dns-queryDoH(JSON) 端点,可替换为自定义解析服务。
--typeA解析类型,支持 A / AAAA
--pool-size30DNS 与预热共享的并发连接数。
--dns-timeout3.0单次 DoH 请求超时(秒)。
--dns-retries2DoH 重试次数。
--attempts3每个节点重复请求次数。
--req-timeout1.0单次预热请求超时时长(秒)。
--budget10.0单节点总耗时预算,超出即停止尝试。
--insecure开启HTTPS 直连 IP 时跳过证书校验。
--strict-cert关闭若需要严格验证证书,可加此参数关闭 --insecure

查看完整参数列表:

python main.py --help

执行流程

  1. 线路解析:为全国联通/电信/移动等线路构造 DoH 查询,收集唯一节点 IP 列表。
  2. 节点预热:对每个 URL、每个节点执行多次请求,读取 eo-cache-status(或 eo_cache_status)判定是否命中。
  3. 结果汇总:输出每个节点的状态码、命中情况、错误信息等,最后汇总命中统计。

常见注意事项

  • CDN 直连 IP 的证书通常不匹配域名,因此默认开启 --insecure 跳过校验,如需验证请加 --strict-cert
  • 请确保目标域名与资源已正确配置于 CDN,否则可能解析不到节点 IP。
  • 频繁预热可能引起运营商节点的限速或风控,请根据业务场景合理安排频率。

About

No description, topics, or website provided.
Language
Python100%