增加dddb/cf2dns docker镜像 --更新日期:2024年6月4日
使用方法
-
拉取cf2dns docker镜像
docker pull dddb/cf2dns
-
新建cf2dns_docker工作目录
cd ~ && mkdir -p cf2dns_docker/logs && cd cf2dns_docker
-
下载所需配置文件
wget --no-check-certificate -qO ./config.ini https://raw.githubusercontent.com/ddgth/cf2dns/master/docker/src/config.ini
-
根据注释修改
config.ini
配置文件 -
运行docker镜像
docker run -d -v ~/cf2dns_docker/config.ini:/cf2dns/src/config.ini -v ~/cf2dns_docker/logs:/cf2dns/logs dddb/cf2dns
-
查看运行日志
tail -100f ~/cf2dns_docker/logs/cf2dns.log
修复腾讯云 DNS 无法调用 --更新日期:2023年1月3日
API 2.0下线通知 由github@z0z0r4提供
新增支持Actions自选更新V4或V6 --更新日期:2022年12月19日
使用方法
-
修改
.github/workflows/run.yml
-
新增secret
DOMAINSV6
新增支持华为云DNS --更新日期:2022年10月25日
使用方法
-
安装依赖
pip install -r requirements.txt
-
修改配置文件
DNS_SERVER
SECRETID
SECRETKEY
REGION_HW
新增优选IPv6功能 --更新日期:2022年7月6日
使用方法
更新代码,修改脚本中的 TYPE
参数即可
新增默认线路记录 --更新日期:2021年12月15日
如果需要使用默认线路,请将默认线路的cname记录移除或改为其他线路
默认:DEF
境外:AB
防假墙功能 --更新日期:2021年8月8日
最近有很多用户遭受假墙攻击并伴随着被勒索的困扰,现在增加了预防假墙攻击的功能
实现方式
之前不管您使用免费的key还是付费的key所筛选出来的Cloudflare IP都是多人共享的,如果其中有人的网站刚好被假墙,而您自选出来的IP刚好和他的相同,那么您的网站也有被假墙的风险。虽然我也使用了各种手动方法来解决这个问题,比如增加接口返回IP数、随机获取优选IP等,但最终还是不能完全杜绝这种情况的发生。因此,现在增加了一个优选IP池,只需在您的key后面加上 fgfw
,您就会每次执行脚本时都能获取到最新的独享优选IP。由于这需要消耗更多的服务器硬件和带宽资源,因此每次调用获取最新的独享优选IP时,您只能获取到每个运营商的2条优选记录,并且每次调用您将消耗更多的key调用次数。执行频率建议与您DNS服务商的最小TTL保持一致(记得把脚本中的TTL参数也修改了)。
使用方法:
- 新用户:在您购买的KEY后面加上
fgfw
,并按照下面教程使用即可 - 现有用户:每个运营商只有2条优选记录,所以您需要删除目前已经存在的之前优选的A记录,然后在您购买的KEY后面加上
fgfw
即可。
功能介绍
筛选出优质的Cloudflare IP(目前暂不开源,以接口方式提供15分钟更新一次),并使用域名服务商提供的API解析到不同线路以达到网站加速的效果(目前只完成DNSPod和阿里云DNS,后续如果有需求将会加入其他运营商的)。
详细的使用场景请访问我的博客
适用人群
- 小站长,网站经常被攻击或网站放置在国外需要稳定且速度相对快的CDN
- 服务器在国外但想建站的用户
- 科学上网加速,改善移动线路(未测试)
使用方法
必要条件:
★ Cloudflare自选IP并已接入到DNSPod或阿里云DNS,不知道怎么自选IP可以查看这个教程
★ Python3、pip环境
方法一:在自己的VPS或电脑中运行(推荐)
- 安装运行脚本所需依赖
pip install -r requirements.txt
-
登录腾讯云后台或者阿里云后台,获取 SecretId、SecretKey,如果使用阿里云DNS,注意需要添加DNS控制权限AliyunDNSFullAccess
-
将脚本下载到本地修改cf2dns.py中的SecretId、SecretKey
-
修改脚本中域名配置信息,可配置多个域名和多个子域名,注意选择DNS服务商
-
(可选)从商店购买KEY,当然也可以用脚本中自带的,区别是脚本中自带的KEY是历史优选的Cloudflare IP(也可以从这个网站查到IP的信息),而购买的KEY是15分钟内获取到的最新的Cloudflare IP。
-
运行程序,如果能够正常运行可以选择cron定时执行(建议15分钟执行一次)
python cf2dns.py
方法二:GitHub Actions 运行
-
登录腾讯云后台或者阿里云后台,获取SecretId、SecretKey。如果使用阿里云DNS,注意需要添加DNS控制权限AliyunDNSFullAccess
-
将本项目Fork到自己的仓库
-
进入第二步中Fork的项目,点击Settings->Secrets and variables-> Actions -> New repository 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"]}}
- DOMAINSV6 如需更新AAA解析,请添加此secrets,格式与DOMAINS相同。
- KEY API密钥,可从商店购买KEY,也可使用
o1zrmHAF
。区别在于o1zrmHAF
是历史优选的Cloudflare IP(也可从此网站查询IP信息),而购买的KEY是15分钟内获取的各运营商速度最优的Cloudflare IP - SECRETID 第一步中从腾讯云后台或阿里云后台获取的
SECRETID
- SECRETKEY 第一步中从腾讯云后台或阿里云后台获取的
SECRETKEY
- DOMAINS 需要修改的域名信息,填写时注意不要换行。例如:
-
修改您项目中的
cf2dns_actions.py
文件中的AFFECT_NUM
和DNS_SERVER
参数,然后修改.github/workflows/run.yml
文件中定时执行的时长(建议每15分钟执行一次),最后点击start commit
提交。之后可在Actions的build中查看执行情况,如果在cf2dns
执行日志中看到CHANGE DNS SUCCESS
的详细输出,则表示运行成功。请注意观察下次定时是否能正确运行,GitHub Actions有时会不稳定
免责声明
网络环境复杂多变,适合我的不一定适合你,所以建议先尝试免费的KEY或购买试用版的KEY
如有问题和建议请提issue或发送邮件给我,不接受谩骂、争吵、抱怨
为什么收费?这个价格我也不指望赚钱,甚至不够我国内一台VDS的费用
★ 如果当前DNSPod有移动、联通、电信线路的解析,将会被覆盖