Total Pageviews

Friday, 8 July 2022

cf2dns

筛选出优质的Cloudflare IP,并使用域名服务商提供的API解析到不同线路以达到网站加速的效果,新增假墙防御方式.

新增默认线路记录 ——update 2021.12.15

如果需要使用默认线路,请将默认线路的cname记录移除或改为其他线路

默认:DEF

境外:AB

Faker GFW ——update 2021.08.08

最近有很多小伙伴正遭受假墙并伴随着被勒索的困扰,现在增加了预防假墙攻击的功能.

实现方式

​ 之前不管您使用免费的key还是付费的key所筛选出来的Cloudflare IP都是多人共享的,如果其中有人的网站刚好被假墙,而您自选出来的IP刚好和他的相同,那么您的网站也有被假墙的风险,当然我也使用了各种手动去解决这个方法,比如增加接口返回IP数、随机获取优选IP等,但最总还是不能完全杜绝这情况的发现,所以现增加了一个优选IP池,只需在您的key后面加上 fgfw ,您就会每次执行脚本都能获取到最新的独享优选IP,由于这需要消耗更多的服务器硬件和带宽资源,那么每次调用获取最新的独享优选IP时,您只能获取到每个运营商的2条优选记录,并且每次调用您将消耗更多的key调用次数,执行频率建议与您DNS服务商的最小TTL保持一直(记得把脚本中的TTL参数也修改了)。

使用方法:

  1. 新用户:在您购买的KEY后面加上 fgfw ,并按照下面教程使用即可
  2. 新用户:每个运营商的2条优选记录,所以您需要删除目前已经存在的之前优选的A记录然后在您购买的KEY后面加上 fgfw 即可。

功能介绍

筛选出优质的Cloudflare IP(目前在暂不开源,以接口方式提供15分钟更新一次),并使用域名服务商提供的API解析到不同线路以达到网站加速的效果(目前只完成DNSPod和阿里云DNS,后续如果有需求将会加入其他运营商的)。

详细的使用场景请移步我的小站.

适用人群

  1. 小站长,网站经常被打或网站放置在国外需要稳定且速度相对快的CDN
  2. 服务器在国外但是想建站的小伙伴
  3. 科学上网加速,拯救移动线路(未测试)

使用方法

必要条件:

★ Cloudflare自选IP并已接入到DNSPod或阿里云DNS,不知道怎么自选IP可以查看这个教程

★ Python3、pip环境

方法一:在自己的VPS或电脑中运行(推荐)

  1. 安装运行脚本所需依赖
pip install -r requirements.txt
  1. 登录腾讯云后台或者阿里云后台,获取 SecretId、SecretKey,如果使用阿里云DNS,注意需要添加DNS控制权限AliyunDNSFullAccess

  2. 将脚本下载到本地修改cf2dns.py中的SecretId、SecretKey

  3. 修改脚本中域名配置信息,可配置多个域名和多个子域名,注意选择DNS服务商

  4. (可选)从商店购买KEY,当然也可以用脚本中自带的,区别是脚本中自带的KEY是历史优选的Cloudflare IP(也可以从这个网站查到IP的信息),而购买的KEY是15分钟内获取到的最新的Cloudflare IP。

  5. 运行程序,如果能够正常运行可以选择cron定时执行(建议15分钟执行一次)

python cf2dns.py

方法二:GitHub Actions 运行

  1. 登录腾讯云后台或者阿里云后台,获取 SecretId、SecretKey,如果使用阿里云DNS,注意需要添加DNS控制权限AliyunDNSFullAccess

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

    modify.png

    commit.png

    build.png

from https://github.com/ddgth/cf2dns

------

CloudFlare自选IP PLUS

一、目前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 需改域名信息,填写时注意不要有换行 例如:{"blog.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
  7.  

四、总结

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

from https://blog.hostmonit.com/cloudflare-select-ip-plus/

No comments:

Post a Comment