cache-domains配Squid与WCCP:DNS之外的第二种缓存重定向方案深度解析

📅 2026/8/23 10:14:24
cache-domains配Squid与WCCP:DNS之外的第二种缓存重定向方案深度解析
cache-domains配Squid与WCCPDNS之外的第二种缓存重定向方案深度解析【免费下载链接】cache-domainsDomain Names required for LAN Content Cache DNS spoofing项目地址: https://gitcode.com/gh_mirrors/ca/cache-domainscache-domains 是一个专为 LAN局域网游戏内容缓存准备的域名清单仓库。这篇文章带你深入它的第二种用法Squid WCCP 缓存重定向方案——不碰 DNS直接在网络层把游戏下载流量引到你的缓存服务器上 一、cache-domains 的两种用法DNS 欺骗 vs WCCP这个仓库的核心价值是一份「可缓存游戏 CDN 域名」的权威清单由 cache_domains.json 定义目前覆盖 Steam、Epic、暴雪、索尼、任天堂、Riot 等 26 个平台。官方给出的使用路径只有两条DNS 欺骗第一种方案把这些域名在 DNS 上改写为缓存服务器 IP配合 dnsmasq、Pi-hole、AdGuard Home、Unbound 等实现由scripts/create-dnsmasq.sh等脚本一键生成配置Squid WCCP本文主角把域名清单交给 Squid 做缓存判断重定向工作则交给路由器上的 WCCP 协议完成。一句话概括两者的分工DNS 欺骗改「解析」WCCP 改「路由」。二、什么是 WCCP网络层透明缓存重定向原理WCCPWeb Cache Communication ProtocolWeb 缓存通信协议是一种运行在路由器上的透明重定向机制支持 WCCP 的路由器典型如 Cisco 企业级设备会拦截经过它的数据包把命中的流量悄悄转发给局域网内的 Squid 缓存服务器Squid 以透明代理模式接管流量缓存里有就直接返回命中没有就回源到真正的 CDN客户端完全无感知——不用改网关 DNS、不用装证书甚至客户端自己配了 DNS 也拦不住它。这里的关键细节是WCCP 只负责「把流量送到 Squid」「哪些流量值得缓存」由 Squid 的dst_domainACL 说了算——这正是 cache-domains 域名文件的用武之地。玩家电脑 ──► 支持WCCP的路由器拦截/重定向──► Squid缓存服务器 ──► 原CDN未命中时回源⚠️ 需要注意WCCP 方案只缓存HTTP 明文流量HTTPS 内容无法缓存原因见 faq.md 的说明这也是 DNS 欺骗方案的共同限制。三、三步上手一键生成 Squid 域名配置文件整个流程只需要三步全部由 scripts/create-squid.sh 自动化完成第 1 步获取域名清单git clone https://gitcode.com/gh_mirrors/ca/cache-domains第 2 步修改配置复制scripts/config.example.json为scripts/config.json在cache_domains字段中决定每个 CDN 的归属把 CDN 映射到输出组名如monolithic多个 CDN 会合并进同一个输出文件对应「一台共享缓存服务器」的常见拓扑不想缓存的 CDN 直接设为disabled脚本会自动跳过。Squid 方案不需要配置缓存服务器 IP重定向由 WCCP 完成这是它与 DNS 方案的配置差异之一所以ips字段在这里可以留空。第 3 步运行脚本并部署bash scripts/create-squid.sh脚本依赖jq会按cache_domains.json读取各平台清单如steam.txt转换后输出到output/squid/*.txt然后按脚本提示复制到/etc/squid/domains/最后在 Squid 配置中引用即可acl steam_domain dstdomain /etc/squid/domains/steam.txt http_access allow steam_domain 详细的使用步骤和输出目录说明见 scripts/README.md。四、踩坑提醒通配符与重复域名的两个坑仓库清单中的域名允许使用通配符如*.dl.delivery.mp.microsoft.com但 Squid 的dstdomain语法并不相同直接照抄会失效仓库清单写法Squid dstdomain 写法说明*.example.com.example.com后缀匹配脚本已自动转换example.comexample.com原样保留scripts/create-squid.sh已经替你解决了两件事格式转换通配符*.自动改写为.无需手动处理去重检查新版 Squid 对重复域名非常严格若清单中同时出现cdn.example.com和*.cdn.example.com脚本会智能保留其中一个避免配置被 Squid 拒绝加载。所以请务必用官方脚本生成而不是手工转换——这也是项目 README 特意叮嘱 Squid 用户的原因。五、DNS 欺骗 vs Squid WCCP选型对比表对比维度DNS 欺骗第一种方案Squid WCCP第二种方案核心思路改写域名解析指向缓存 IP路由器拦截流量转给 Squid配置位置DNS 服务器dnsmasq/Pi-hole/AdGuard Home/Unbound支持 WCCP 的路由器 Squid客户端改动需将网关 DNS 指向自己的 DNS 服务零改动完全透明对 DNS 的控制要求必须能控制客户端 DNS 查询无网络层拦截绕开 DNS硬件要求无特殊要求树莓派即可需 WCCP 路由器多为 Cisco 等企业级设备HTTPS 流量无法缓存无法缓存仅 HTTP配套生成脚本create-dnsmasq.sh等create-squid.sh怎么选家用 / 小型 LAN 且能控制 DNS优先 DNS 欺骗门槛最低企业网络或客户端自带固定 DNS / DoH 的场景WCCP 才是正解。六、常见问题 FAQQ1为什么有些 CDN 怎么都缓存不到全 HTTPS 交付的内容在技术上无法被缓存这是方案层面的限制而非配置问题faq.md 中有完整解释。Q2OriginEA 平台有特殊要求吗有。cache_domains.json中标注了origin为mixed_content只应对其启用 HTTP 缓存或配合 HTTPS 代理否则 Origin 客户端的下载会失败。Q3如何验证缓存是否生效建议启用清单中的testCDN官方推荐用于诊断再配合 Squid 的缓存命中率统计确认命中情况。Q4发现某个域名漏了怎么办这个清单是社区协作维护的「权威清单」欢迎提交 PR 补充新域名仓库要求每行一个域名、以#注释、文件以空行结尾规范见README.md。写在最后cache-domains 让你「一份清单两种打法」DNS 欺骗胜在简单普及Squid WCCP 胜在透明彻底。理解了这套机制你在自己的网络里部署游戏内容缓存就只剩下选方案、跑脚本、看命中率这三件事了 ✅【免费下载链接】cache-domainsDomain Names required for LAN Content Cache DNS spoofing项目地址: https://gitcode.com/gh_mirrors/ca/cache-domains创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考