news 2026/8/23 17:11:48

canary金丝雀域名深度解析:用test.txt验证cache-domains缓存是否真正命中

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
canary金丝雀域名深度解析:用test.txt验证cache-domains缓存是否真正命中

canary金丝雀域名深度解析:用test.txt验证cache-domains缓存是否真正命中

【免费下载链接】cache-domainsDomain Names required for LAN Content Cache DNS spoofing项目地址: https://gitcode.com/gh_mirrors/ca/cache-domains

cache-domains 是一个为局域网内容缓存(LAN Content Cache)整理的域名清单,核心用法是通过 DNS 劫持(DNS spoofing)把游戏下载流量重定向到缓存服务器。而清单里的canary 金丝雀域名(位于test.txt)就是用来验证这套缓存是否真正命中的"体检工具"——配置得对不对,一分钟就能查出来。

为什么需要金丝雀域名验证 🐤

很多管理员搭好 DNS 劫持后并不知道它是否生效:

  • 如果域名清单没有正确下发,游戏下载会静默地直连公网,不报错、不提示,只是缓存服务器毫无命中记录;
  • 游戏下载是一次性大流量,等你发现没命中时,带宽可能已经白白消耗掉了。

金丝雀域名的思路很简单:选几个不承载真实游戏内容的测试域名,把它们和正式 CDN 一起劫持到缓存服务器。因为测试域名"零风险、随时可查",所以:

  • 解析结果指向缓存服务器 IP → 说明 DNS 劫持链路正常;
  • 解析结果还是公网 IP → 说明配置有问题,趁早修,不用等真正下载游戏时翻车。

在清单主配置文件cache_domains.json中,这一组域名被定义为独立条目:

"name": "test",描述为 "CDN for Testing, recommended to enable for additional diagnostics"(推荐启用以获得额外诊断能力),关联文件正是test.txt

test.txt 里的 6 个金丝雀域名一览

test.txt内容非常短,一共 6 个域名,按"三组名称 × 两个官方域名后缀"排列:

分组含义对应域名
canary金丝雀(矿井预警,最直观)canary.lancache.net/canary.uklans.net
litmus试金石(litmus test,测试是否达标)litmus.lancache.net/litmus.uklans.net
trigger触发器(用于触发并观察请求路径)trigger.lancache.net/trigger.uklans.net

三组名字指向同一件事:用最小代价探测流量走向。验证时任选其一即可,其余留作备用或交叉对照。

一键启用 test 域名:DNS 规则生成步骤

cache-domains 自带一套脚本,可为 AdGuard Home、Dnsmasq/Pi-hole、Unbound、BIND9(RPZ)、Squid 生成对应配置,详见scripts/README.md

第 1 步:获取清单文件

git clone https://gitcode.com/gh_mirrors/ca/cache-domains

第 2 步:准备配置

复制scripts/config.example.jsonscripts/config.json,把你负责缓存的域名(包括test)映射到缓存服务器 IP,例如:

{ "ips": { "generic": "10.10.3.16" }, "cache_domains": { "default": "generic", "test": "generic" } }

第 3 步:生成并下发规则

以 Dnsmasq 为例运行bash scripts/create-dnsmasq.sh,脚本会输出形如:

address=/canary.lancache.net/10.10.3.16 local=/canary.lancache.net/

再把scripts/output/dnsmasq/下的文件复制到 Dnsmasq 配置目录(如/etc/dnsmasq/dnsmasq.d/)并重启服务。其他 DNS 方案同理,脚本已帮你处理好格式差异。

三步确认缓存是否真正命中 ✅

  1. 查解析:在客户端执行dig canary.lancache.net +short(Windows 用nslookup canary.lancache.net),返回的应该是缓存服务器 IP(如10.10.3.16),而不是公网地址。
  2. 查连接:在客户端访问该金丝雀域名,确认 TCP 连接确实落在缓存服务器上(可以用防火墙日志或抓包确认源 IP)。
  3. 查命中:查看缓存服务器(如 Squid / monolithic)的访问日志,确认对金丝雀域名的请求已计入命中统计。

三步全过,说明 DNS 劫持链路完好,正式游戏域名(steam.txtepicgames.txt等)大概率同样生效。

常见"不命中"原因排查表 🔍

症状可能原因解决办法
dig返回公网 IP生成的规则文件没放对目录,或没重启 DNS 服务scripts/README.md指引核对路径并重启服务
部分客户端命中、部分不命中个别设备使用了自己的 DNS(手机、智能路由、DHCP 下发的 DNS 不同)统一内网 DNS 指向
解析正确但缓存无命中流量走 HTTPS,明文缓存无法拦截参考faq.md中 SNI Proxy / HTTPS 说明,或改用支持 SNI 的代理
改完配置后老客户端不生效客户端/路由器存在 DNS 缓存等待 TTL 过期或手动刷新 DNS 缓存
通配域名未匹配清单中的*.xxx.com通配符在 Squid 等方案中需要重新格式化使用scripts/create-squid.sh自动生成,勿手工改写

小结:把金丝雀配置当作"常驻体检项" 🩺

  • 金丝雀域名成本几乎为零:不占缓存空间、不消耗公网带宽,却在每次网络变更后都能给出即时反馈;
  • 建议把test条目长期保持启用(官方描述也推荐这么做),今后调整 DNS、升级缓存服务器后重跑一遍三步验证即可;
  • 本文涉及的核心文件:test.txt(金丝雀域名清单)、cache_domains.json(条目定义)、scripts/config.example.json(配置模板)、scripts/README.md(脚本使用说明)、faq.md(常见问题)。

一句话总结:配置完先查金丝雀,金丝雀命中了,缓存才算真正命中。

【免费下载链接】cache-domainsDomain Names required for LAN Content Cache DNS spoofing项目地址: https://gitcode.com/gh_mirrors/ca/cache-domains

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/23 17:02:26

Shardeum投票系统全解:去中心化治理与自动扩容投票指南

Shardeum投票系统全解:去中心化治理与自动扩容投票指南 【免费下载链接】shardeum Shardeum is an EVM based autoscaling blockchain 项目地址: https://gitcode.com/GitHub_Trending/sh/shardeum Shardeum投票系统是这条EVM兼容自动扩容区块链的治理核心&a…

作者头像 李华
网站建设 2026/8/23 16:54:09

New API高可用背后的秘密:渠道重试与故障自动禁用机制深度解析

New API高可用背后的秘密:渠道重试与故障自动禁用机制深度解析 【免费下载链接】new-api 基于One API的二次开发版本,仅供个人管理渠道使用,请勿用于商业API分发! 项目地址: https://gitcode.com/gh_mirrors/newa/new-api …

作者头像 李华
网站建设 2026/8/23 16:45:34

FreeRTOS运行一次后卡死

最近在编写STM32F1系列单片机遇到的问题,查找了很多资料,记录一下排除过程:一、任务优先级错误:如果你的任务优先级设置不正确,就会导致某些任务无法得到执行,从而导致系统卡死。请确保你的任务优先级设置正确&#xf…

作者头像 李华
网站建设 2026/8/23 16:44:38

炉石HsMod插件:60+功能管换肤、战棋MMR和挂机,Windows 5分钟装好

炉石HsMod插件:60功能管换肤、战棋MMR和挂机,Windows 5分钟装好 【免费下载链接】HsMod Hearthstone Modification Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod 商城里买不到的卡背、对手看不透的隐藏分&#xff0…

作者头像 李华