0、前言
Cloudflare 的优势不必再次赘述,然而 Cloudflare 在中国大陆的访问速度堪忧:
通过 优选 IP 和 寻找反代 IP 两种方式,可以极大地提升 Cloudflare 的大陆访问速度。
1、优选 IP
网站:
CloudFlare优质IP
https://stock.hostmonit.com/CloudFlareYes
开源仓库:
GitHub CloudFlare优质IP自动切换
https://github.com/ddgth/cf2dns
原作者已有详细教程,此处仅简要说明部署过程。
1.1、安装
在想要放置程序文件的目录(如:~/cf/
)执行:
1 | mkdir ~/cf/ cd ~/cf/ git clone https://github.com/ddgth/cf2dns mv ./cf2dns/* ./ |
安装依赖:
1 | pip3 install -r requirements.txt |
如果没有pip3
可以尝试:
1 | pip install -r requirements.txt |
1.2、配置
我使用的程序已自行修改成从config.json
加载(后文有修改方法),原程序为在cf2dns.py
中配置,配置可以参考我的config.json
:
1 | { "cf_api_key": "o1zrmHAF", "domains": { "tsinbei.com": { "test": [ "CM", "CU", "CT" ] } }, "affect_num": 2, "dns_server": 1, "region_hw": "", "region_ali": "", "ttl": 600, "record_type": "A", "secret_id": "YOUR_DNSPOD_ID", "secret_key": "YOUR_DNSPOD_SECRET" } |
注意:
cf_api_key
请到 商店 购买,第一次购买需先购买 试用 Key,拥有唯一key
之后,充值点数再购买 Key 充值。domains
要在同一个账号下,可以为多个根域名;CM
、CU
、CT
、AB
、DEF
分别代表移动、联通、电信、境外、默认线路。affect_num
为一次性设置条数,DNSPod 免费版只有 2 条,个人专业版有 5 条。ttl
DNSPod 免费版最低 600,个人专业版最多 60。
1.3、修改
如果域名分布在多个账号,可以参考以下方式修改源码:
将cf2dns.py
第 13-46 行:
1 | #可以从https://shop.hostmonit.com获取 KEY = "o1zrmHAF" #CM:移动 CU:联通 CT:电信 AB:境外 DEF:默认 #修改需要更改的dnspod域名和子域名 DOMAINS = { "hostxxnit.com": {"@": ["CM","CU","CT"], "shop": ["CM", "CU", "CT"], "stock": ["CM","CU","CT"]}, "484848.xyz": {"@": ["CM","CU","CT"], "shop": ["CM","CU","CT"]} } #解析生效条数 免费的DNSPod相同线路最多支持2条解析 AFFECT_NUM = 2 #DNS服务商 如果使用DNSPod改为1 如果使用阿里云解析改成2 如果使用华为云解析改成3 DNS_SERVER = 1 #如果使用华为云解析 需要从API凭证-项目列表中获取 REGION_HW = 'cn-east-3' #如果使用阿里云解析 REGION出现错误再修改 默认不需要修改 https://help.aliyun.com/document_detail/198326.html REGION_ALI = 'cn-hongkong' #解析生效时间,默认为600秒 如果不是DNS付费版用户 不要修改!!! TTL = 600 #v4为筛选出IPv4的IP v6为筛选出IPv6的IP TYPE = 'v4' #API 密钥 #腾讯云后台获取 https://console.cloud.tencent.com/cam/capi #阿里云后台获取 https://help.aliyun.com/document_detail/53045.html?spm=a2c4g.11186623.2.11.2c6a2fbdh13O53 注意需要添加DNS控制权限 AliyunDNSFullAccess #华为云后台获取 https://support.huaweicloud.com/devg-apisign/api-sign-provide-aksk.html SECRETID = 'WTTCWxxxxxxxxxxxxxxxxxxxxx84O0V' SECRETKEY = 'GXkG6D4X1Nxxxxxxxxxxxxxxxxxxxxx4lRg6lT' |
修改为:
1 | default_conf = { "cf_api_key": "CF_API_KEY", "domains": {"YOUR_DOMAIN": {"YOUR_SUBDOMAIN": ["CM", "CU", "CT"]} }, "affect_num": 2, "dns_server": 1, "region_hw": "", "region_ali": "", "ttl": 600, "record_type": "A", "secret_id": "YOUR_DNSPOD_ID", "secret_key": "YOUR_DNSPOD_SECRET" } if len(sys.argv) == 2: conf_name = sys.argv[1] else: conf_name = "config.json" # 添加配置文件 if not os.path.exists(conf_name): with open(conf_name, "w") as f: json.dump(default_conf, f) log_error("已初始化配置文件,请修改 config.json") exit() else: with open(conf_name) as f: conf = json.load(f) log_info("成功加载 "+conf_name) # 可以从 https://shop.hostmonit.com 获取 KEY = conf["cf_api_key"] # CM:移动 CU:联通 CT:电信 AB:境外 DEF:默认 # 修改需要更改的 DNSPod域名和子域名 DOMAINS = conf["domains"] # 解析生效条数 免费的DNSPod相同线路最多支持2条解析 AFFECT_NUM = conf["affect_num"] # DNS服务商 如果使用DNSPod改为1 如果使用阿里云解析改成2 如果使用华为云解析改成3 DNS_SERVER = conf["dns_server"] # 如果使用华为云解析 需要从API凭证-项目列表中获取 REGION_HW = conf["region_hw"] # 如果使用阿里云解析 REGION出现错误再修改 默认不需要修改 https://help.aliyun.com/document_detail/198326.html REGION_ALI = conf["region_ali"] # 解析生效时间,默认为600秒 如果不是DNS付费版用户 不要修改!!! TTL = conf["ttl"] # A为筛选出IPv4的IP AAAA为筛选出IPv6的IP RECORD_TYPE = conf["record_type"] # API 密钥 # 腾讯云后台获取 https://console.cloud.tencent.com/cam/capi # 阿里云后台获取 https://help.aliyun.com/document_detail/53045.html?spm=a2c4g.11186623.2.11.2c6a2fbdh13O53 注意需要添加DNS控制权限 AliyunDNSFullAccess # 华为云后台获取 https://support.huaweicloud.com/devg-apisign/api-sign-provide-aksk.html SECRETID = conf["secret_id"] SECRETKEY = conf["secret_key"] |
即可支持从配置文件加载,指定配置文件名称,后文将详细说明。
1.4、使用
无论是否修改,都可以使用:
1 | cd ~/cf/ python3 cf2dns.py |
启动程序,建议在命令行中测试启动,确认无误后再设置为 Cron 任务。
修改后,使用相同命令将从同目录下 config.json
加载,如果指定配置文件:
1 | cd ~/cf/ python3 cf2dns.py my_conf.json |
将加载同目录的my_conf.json
。
测试正常后只需将命令内容放入 Cron 任务即可。
另外,每次消耗 1 点(0.01元),API 更新频率 15 分钟,因此 Cron 间隔最低 15 分钟,每年约需要 30 余元。经过观察,设置频率为 1 至 2 小时不影响优选效果。
优选效果:全国三网拨测平均时间 1.2~1.5s。
2、寻找反代 IP
使用网站:
Fofa 搜索引擎
https://fofa.info
参考搜索语法(需要自行根据实际需求组合、修改后使用):
此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。
注意:搜索到的 IP 不一定有效,建议到拨测平台用自己 CNAME 接入的域名,指定用上述方法搜到的 IP,看看全国拨测结果。
另外,此方法搜到的域名大部分只有部分端口反代 Cloudflare,例如:80,8080,443,8443。因此建站的话可能导致只能 HTTP/HTTPS 访问等问题,谨慎选择;另外,一如既往地谴责使用 Cloudflare 进行国际联网,这是违反 TOS 的滥用行为。
优选效果:(香港)全国三网拨测平均时间 0.4~0.5s,如果是大陆可以更快。
CDN 调教指南(三)优选 Cloudflare IP
评论