Updated at: 2025-02-19
因为很多列表太陈旧,也太多,很多可能你永远都访问不到。所以此文提供一种方法,可以自动从 Brook 或 Shiliew 图形客户端的日志或 CLI 的日志里提取中国域名,并增量生成自己的中国域名直连模块。
Windows 用户应在 GitBash 下运行
brook ipcountry --ip `brook dohclient -s 'https://dns.quad9.net/dns-query?address=9.9.9.9%3A443' -d pic1.zhimg.com --short`
结果是 US
brook ipcountry --ip `brook dohclient -s 'https://dns.alidns.com/dns-query?address=223.5.5.5:443' -d pic1.zhimg.com --short`
结果是 CN
brook ipcountry --ip `brook dohclient -s 'https://dns.alidns.com/dns-query?address=223.5.5.5:443' -d pic1.zhimg.com --short`
结果是 US
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
: 从海外 IP 向海外 DNS 发起查询, 比如开启 GUI 的情况下或在服务器端运行, 缺点是如果域名同时有国内和海外 IP 则会被认为是海外域名B
: 从国内 IP 向阿里 DNS 发起查询, 比如在本地运行, 开启 GUI 情况下也没事,GUI 默认 bypass 了阿里 DNS, 缺点是如果返回的污染 IP 是国内的 IP 就会错乱,历史经验不会, 但无保证包。还有一个缺点是 Google 有一些域名有国内的 IP比如: 从客户端的日志里准备数据,并采用方案 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
手动调整某个域名为国内域名
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
隔一段时间后,再次重复以上步骤,用不了几次就会生成最适合自己的完美的中国域名直连模块。