域名轮换系统是 new-pac 仓库的关键组成部分,通过以可预测的模式定期更改域名来维持对审查规避工具的持续访问。本文档解释了域名轮换的技术实现,包括域名的更新方式、受影响的文件以及系统的自动化方式。
有关更新脚本本身及其执行环境的信息,请参阅更新脚本和GitHub Actions 工作流程。
域名轮换系统通过定期增加域名中的数字部分来工作。这项技术通过增加审查系统阻止所有访问点的难度,帮助维持对规避服务的访问。当一个域名被阻止时,系统已经转移到下一个域名。
来源:update_wiki_page.py21-26 update_wiki_page.py29 update_v2ray_wiki.py22-34
该系统管理两种主要类型的域名,每种都有其自己的更新模式和目的
| 域名类型 | 模式 | 目的 | 更新位置 |
|---|---|---|---|
| Fan域名 | fan[NUMBER].635876.xyz | 用于直翻通道 | Wiki页面“直翻通道.md” |
| Y域名 | y[NUMBER].582185.xyz | 用于V2Ray主机配置 | Wiki页面“v2ray免费账号.md” |
两种域名类型都遵循相似的模式,即只增加数字部分,同时保持基础名称和域名后缀不变。
来源:update_wiki_page.py29 update_v2ray_wiki.py23
域名更新过程依赖于正则表达式来识别域名模式,以及一个辅助函数来增加数字部分。
对于 Fan 域名,其实现位于 update_wiki_page.py 中。
来源:update_wiki_page.py21-26 update_wiki_page.py29
V2Ray域名更新更为复杂,因为它需要同时更新Markdown表格中显示的主机以及Base64编码的vmess链接中嵌入的主机信息。
来源:update_v2ray_wiki.py22-35 update_v2ray_wiki.py39-50
更新vmess链接的具体步骤
除了域名更新,系统还会更新时间戳以反映更改发生的时间。时间戳格式使用北京时间(亚洲/上海时区),并遵循特定的中文日期格式。
来源:update_wiki_page.py10-12 update_wiki_page.py31-36 update_wiki_page.py51-56 update_v2ray_wiki.py11-13 update_v2ray_wiki.py52-57
域名轮换系统通过 GitHub Actions 工作流程自动执行,该工作流程以固定间隔(通常每10分钟)运行更新脚本。
来源:update_wiki_page.py update_v2ray_wiki.py
域名轮换系统存在一些技术限制和设计考量
尽管简单,这种方法已被证明能有效保持对规避工具的访问,通过领先于封锁努力。
域名轮换系统通过以下方式持续更新用于规避工具的域名:
该系统是仓库维护审查规避工具可靠访问的核心组成部分。