如何自动生成自用的中国域名直连模块

Updated at: 2025-02-19

因为很多列表太陈旧,也太多,很多可能你永远都访问不到。所以此文提供一种方法,可以自动从 BrookShiliew 图形客户端的日志或 CLI 的日志里提取中国域名,并增量生成自己的中国域名直连模块。

Windows 用户应在 GitBash 下运行

原理

从海外 IP 向海外 DNS 发起查询知乎的一个域名

brook ipcountry --ip `brook dohclient -s 'https://dns.quad9.net/dns-query?address=9.9.9.9%3A443' -d pic1.zhimg.com --short`

结果是 US

从国内 IP 向阿里 DNS 发起查询知乎的一个域名

brook ipcountry --ip `brook dohclient -s 'https://dns.alidns.com/dns-query?address=223.5.5.5:443' -d pic1.zhimg.com --short`

结果是 CN

从海外 IP 向阿里 DNS 发起查询知乎的一个域名

brook ipcountry --ip `brook dohclient -s 'https://dns.alidns.com/dns-query?address=223.5.5.5:443' -d pic1.zhimg.com --short`

结果是 US

从国内 IP 向阿里 DNS 发起查询 Google 的一个域名

brook dohclient -s 'https://dns.alidns.com/dns-query?address=223.5.5.5:443' -d www.google.com --short

结果 108.160.166.57,显然是个被污染的 IP,但这是个 US 的 IP

方案

nami install brook 7z bun bun.plus
bunu https://bash.ooo/china.js

从自己的客户端或服务端日志里准备数据

根据上面所言,我们就有两种方案来判断一个域名是不是大陆域名:

比如: 从客户端的日志里准备数据,并采用方案 A,在本地开启 GUI 后运行

bunu https://bash.ooo/china.js --source gui --how A

比如: 从客户端的日志里准备数据,并采用方案 B,在本地运行

bunu https://bash.ooo/china.js --source gui --how B

比如: 从服务端的日志里准备数据,并采用方案 A,在服务端运行

bunu https://bash.ooo/china.js --source /path/to/log --how A

查看准备好的数据

bunu https://bash.ooo/china.js --table

弥补 A 和 B 方案的不足,手动微调数据

手动调整某个域名为国内域名

bunu https://bash.ooo/china.js --china zhimg.com

手动调整某个域名为国际域名

bunu https://bash.ooo/china.js --global gstatic.com

生成中国域名直连模块

bunu https://bash.ooo/china.js --modulea

总结

隔一段时间后,再次重复以上步骤,用不了几次就会生成最适合自己的完美的中国域名直连模块。