CloudFlare自选IP PLUS

够筛选出优质的Cloudflare IP,并使用域名服务商提供的API解析到不同线路以达到网站加速、防止DDos攻击的效果

一、目前CloufFlare自选IP存在问题

上一篇文章提到了使用CloudFlare自选IP加速自己的网站,细心的小伙伴也发现了问题。简单总结有以下几点缺陷。

  1. 自己A记录填写的CloudFlare IP并不是永久可用,保不齐哪天你填写的CloudFlare IP被GFW给屏蔽了,那你的网站就歇菜了。
  2. 自己A记录填写的CloudFlare IP并不是能持续稳定,即使是CloufFlare,服务器也有被攻击的时候,这时你的网站打开速度就会很慢,有时可能会出现打不开的情况。
  3. 自己A记录填写的CloudFlare IP并不是对所有人访问速度都快,这一点建站的小伙伴要尤为注意,也许你ping这个Cloudflare IP延迟很低,但是你的站点并不是你一个人访问,你需要的是让国内外每个访问者都能高速访问你的网站。
  4. 普通站长很难去找到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 运行(推荐)

  1. 登录腾讯云后台,获取 SecretId、SecretKey

  2. Fork项目到自己的仓库fork.png

  3. 进入第二步中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

    secret.png

  4. 修改您项目中的 .github/workflows/run.yml 文件,修改定时执行的时长(建议15分钟执行一次),最后点击 start commit 提交即可在Actions中的build查看到执行情况,如果看到 cf2dns 执行日志中有 CHANGE DNS SUCCESS 详情输出,即表示运行成功。需要注意观察下次定时是否能正确运行,有时候GitHub Actions 挺抽风的

    modify.png

    commit.png

    build.png

方法二:在自己的VPS或电脑中运行

  1. 安装依赖包
    pip install -r requirements.txt
  2. 登录腾讯云后台,获取 SecretId、SecretKey
  3. GitHub中脚本下载到本地
  4. 将第一步中获取到的SecretId、SecretKey配置到cf2dns.py脚本中,并修改脚本中DOMAINS配置信息,可配置多个域名和多个子域名,但必须是在同一个DNSPOD账号下
  5. (可选)从商店购买KEY,当然也可以用脚本中自带的KEY,区别是脚本中自带的KEY是历史优选的Cloudflare IP(可以从全球主机补货监控中查看IP的信息),而购买的KEY是15分钟内获取到的连接到各运营商速度最优的Cloudflare IP。
  6. 运行程序,如果能够正常运行可以选择cron或Windows计划任务定时执行(建议15分钟执行一次)
    python3 cf2dns.py

四、总结

写这套程序和教程也耗费了站长很多精力,希望使用本教程的小伙伴能够在下方的留言区说出使用的效果和感受,更希望您能提出宝贵的建议。

原创文章,作者:admin,如若转载,请注明出处:https://blog.hostmonit.com/cloudflare-select-ip-plus/

(2)
admin的头像admin
上一篇 2020年7月23日 下午6:31
下一篇 2020年7月10日 上午11:34

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

评论列表(24条)

  • Dark的头像
    Dark 2020年11月9日 下午8:29

    好实用的选ip工具,老板辛苦了

  • 心意的头像
    心意 2020年11月12日 上午12:28

    请问下 方法一是只能一个域名对吧?如果需要设置多个域名就需要多个github 或者使用方法二?

    • admin的头像
      admin 2020年11月18日 下午10:51

      @心意不是的。方法一也可以多个域名。 填写格式和方法二一样。

  • 66的头像
    66 2020年11月14日 下午8:36

    大佬666

  • xltz的头像
    xltz 2020年11月17日 下午5:22

    很不错,方便省心,谢谢啦!

  • abudu的头像
    abudu 2020年11月26日 下午7:43

    使用该脚本出现了重复的记录,是BUG还是我操作问题。。

  • sxml的头像
    sxml 2020年12月2日 下午8:08

    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 是什么意思?

  • 阿里路呀的头像
    阿里路呀 2020年12月2日 下午8:36

    自选IP PLUS 还需要 萌精灵CDN吗?
    DNSPod 获取 SecretId、SecretKey ?

  • 林不会的头像
    林不会 2020年12月22日 上午12:57

    File "cf2dns.py", line 27
    AFFECT_NUM = 2
    ^
    SyntaxError: invalid
    报错显示这个

    • admin的头像
      admin 2020年12月31日 下午5:26

      @林不会重新down下来脚本 再修改执行 这个错误是缩进错误
      打开修改文件最好用sublime text或者notepad++

  • yangyu的头像
    yangyu 2021年1月20日 下午12:41

    大佬 怎么查看GitHub Actions 是否定时成功 如果没成功应该怎么操作。感谢!

    • admin的头像
      admin 2021年1月27日 下午6:44

      @yangyuReadme中有介绍 使用方法的第四步也可以找到

  • ad的头像
    ad 2021年1月25日 下午9:13

    阿里云可以用吗?

    • admin的头像
      admin 2021年2月9日 下午2:28

      @ad阿里云接入的域名也可以使用

  • 小鸟的头像
    小鸟 2021年2月8日 上午9:29

    在本机执行成功了,效果非常好,谢谢站长。

  • 小鸟的头像
    小鸟 2021年2月13日 下午8:37

    GitHub也用上了,定时执行很不错,我是阿里云的域名,效果不错,谢谢站长。

  • 伦语的头像
    伦语 2021年3月30日 上午9:19

    已支持,持续关注。

  • 云起的头像
    云起 2021年6月2日 上午8:23

    大佬用心了,也辛苦了.效果非常好.感谢大佬的无私奉献.

  • peter的头像
    peter 2021年6月21日 上午1:19

    大佬,可以设置dnspod的境外吗?现在脚本是cm,cu和ct,如何设置境外ip

    • admin的头像
      admin 2021年12月17日 下午12:39

      @peter请到github查看addline分支

    • admin的头像
      admin 2021年12月17日 下午12:39

      @petergithub已经更新 请查看分支版本

  • lyz05的头像
    lyz05 2021年8月3日 下午5:39

    搭配D监控使用很香,D监控上能看到有时自动获取的优选IP地址,估计是受墙的影响有时候会RST。在D监控配自动切换回默认线路就好。总的来说,对流量型网站很香。对稳定性要求高的网站,还是默认解析好。

  • gankie的头像
    gankie 2021年10月18日 下午1:29

    谢谢大佬的付出!!!非常好用的!!价格收费合理!!