文章目录[隐藏]
一、目前CloufFlare自选IP存在问题
上一篇文章提到了使用CloudFlare自选IP加速自己的网站,细心的小伙伴也发现了问题。简单总结有以下几点缺陷。
- 自己A记录填写的CloudFlare IP并不是永久可用,保不齐哪天你填写的CloudFlare IP被GFW给屏蔽了,那你的网站就歇菜了。
- 自己A记录填写的CloudFlare IP并不是能持续稳定,即使是CloufFlare,服务器也有被攻击的时候,这时你的网站打开速度就会很慢,有时可能会出现打不开的情况。
- 自己A记录填写的CloudFlare IP并不是对所有人访问速度都快,这一点建站的小伙伴要尤为注意,也许你ping这个Cloudflare IP延迟很低,但是你的站点并不是你一个人访问,你需要的是让国内外每个访问者都能高速访问你的网站。
- 普通站长很难去找到CloudFLare对不同运营商(移动、联通、电信)访问速度快的IP。
二、使用CloudFlare自选IP PLUS解决上述问题?
遇到问题那么就要解决掉,为了解决这些问题,站长不惜重金买了几台国内不同运营商的高带宽高流量VDS,并花了两天时间写了一套程序,在每台VDS上都部署一套程序,用来获取相应运营商连接目前已知的1786880个CloudFlare IP中速度最快的IP,并以接口形式提供出来。之后又花了半天时间写了一个脚本,脚本主要功能是调取接口将连接各运营商速度快的CloudFare IP自动解析到DNS域名服务商处。经过一个多月的使用测试,明显感觉到网站的访问速度和稳定性有所提升。
三、使用方法
必要条件:
★ Cloudflare自选IP完成并已接入到DNSPOD,不知道怎么自选IP可以查看上个CloudFlare自选IP的教程
★ Linux\Windows、Python3、pip3环境
用前必读:
1. 网络环境错综复杂,适合我的不一定适合你,所以尽量先尝试免费的KEY或者购买试用版的KEY
2. 如果当前DNSPod有移动、联通、电信线路的解析将会覆盖掉
3. 至于为什么要选择性收费,这个标价我也根本不指望能赚钱,甚至不够我国内一台VDS的钱,况且后续会增加VDS节点,并且增加按区域解析的功能。(小声BB,因为前公司欠薪1年多)
方法一:GitHub Actions 运行(推荐)
-
登录腾讯云后台,获取 SecretId、SecretKey
-
Fork项目到自己的仓库
-
进入第二步中Fork的项目,点击Settings->Secrets-New secret,分别是DOMAINS,KEY,SECRETID,SECRETKEY。
- DOMAINS 需改域名信息,填写时注意不要有换行 例如:
{"hostmonit.com": {"@": ["CM","CU","CT"], "shop": ["CM", "CU", "CT"], "stock": ["CM","CU","CT"]},"4096.me": {"@": ["CM","CU","CT"], "vv":["CM","CU","CT"]}}
- KEY API密钥,从商店购买KEY,也可以使用这个KEY
o1zrmHAF
,区别是o1zrmHAF
是历史优选的Cloudflare IP(也可以从这个网站查到IP的信息),而购买的KEY是15分钟内获取到的对各运营商速度最优的的Cloudflare IP - SECRETID 第一部中从腾讯云后台,获取到的
SECRETID
- SECRETKEY 第一部中从腾讯云后台,获取到的
SECRETKEY
- DOMAINS 需改域名信息,填写时注意不要有换行 例如:
-
修改您项目中的
.github/workflows/run.yml
文件,修改定时执行的时长(建议15分钟执行一次),最后点击start commit
提交即可在Actions中的build查看到执行情况,如果看到cf2dns
执行日志中有CHANGE DNS SUCCESS
详情输出,即表示运行成功。需要注意观察下次定时是否能正确运行,有时候GitHub Actions 挺抽风的
方法二:在自己的VPS或电脑中运行
- 安装依赖包
pip install -r requirements.txt
- 登录腾讯云后台,获取 SecretId、SecretKey
- 将GitHub中脚本下载到本地
- 将第一步中获取到的SecretId、SecretKey配置到cf2dns.py脚本中,并修改脚本中DOMAINS配置信息,可配置多个域名和多个子域名,但必须是在同一个DNSPOD账号下
- (可选)从商店购买KEY,当然也可以用脚本中自带的KEY,区别是脚本中自带的KEY是历史优选的Cloudflare IP(可以从全球主机补货监控中查看IP的信息),而购买的KEY是15分钟内获取到的连接到各运营商速度最优的Cloudflare IP。
- 运行程序,如果能够正常运行可以选择cron或Windows计划任务定时执行(建议15分钟执行一次)
python3 cf2dns.py
四、总结
写这套程序和教程也耗费了站长很多精力,希望使用本教程的小伙伴能够在下方的留言区说出使用的效果和感受,更希望您能提出宝贵的建议。
原创文章,作者:admin,如若转载,请注明出处:https://blog.hostmonit.com/cloudflare-select-ip-plus/
评论列表(24条)
好实用的选ip工具,老板辛苦了
请问下 方法一是只能一个域名对吧?如果需要设置多个域名就需要多个github 或者使用方法二?
@心意:不是的。方法一也可以多个域名。 填写格式和方法二一样。
大佬666
很不错,方便省心,谢谢啦!
使用该脚本出现了重复的记录,是BUG还是我操作问题。。
DOMAINS 需改域名信息,填写时注意不要有换行 例如:{"blog.hostmonit.com": {"@": ["CM","CU","CT"], "shop": ["CM", "CU", "CT"], "stock": ["CM","CU","CT"]},"4096.me": {"@": ["CM","CU","CT"], "vv":["CM","CU","CT"]}}
这个看不懂 能不能请详细些修改那里?谢谢
4096.me 和 vv 是什么意思?
自选IP PLUS 还需要 萌精灵CDN吗?
DNSPod 获取 SecretId、SecretKey ?
File "cf2dns.py", line 27
AFFECT_NUM = 2
^
SyntaxError: invalid
报错显示这个
@林不会:重新down下来脚本 再修改执行 这个错误是缩进错误
打开修改文件最好用sublime text或者notepad++
大佬 怎么查看GitHub Actions 是否定时成功 如果没成功应该怎么操作。感谢!
@yangyu:Readme中有介绍 使用方法的第四步也可以找到
阿里云可以用吗?
@ad:阿里云接入的域名也可以使用
在本机执行成功了,效果非常好,谢谢站长。
@小鸟:感谢支持 谢谢。
GitHub也用上了,定时执行很不错,我是阿里云的域名,效果不错,谢谢站长。
已支持,持续关注。
大佬用心了,也辛苦了.效果非常好.感谢大佬的无私奉献.
大佬,可以设置dnspod的境外吗?现在脚本是cm,cu和ct,如何设置境外ip
@peter:请到github查看addline分支
@peter:github已经更新 请查看分支版本
搭配D监控使用很香,D监控上能看到有时自动获取的优选IP地址,估计是受墙的影响有时候会RST。在D监控配自动切换回默认线路就好。总的来说,对流量型网站很香。对稳定性要求高的网站,还是默认解析好。
谢谢大佬的付出!!!非常好用的!!价格收费合理!!