15 05 2021

好久没水文章了,来记录一次基于linux的cloudflare自选IP,搭配阿里云api自动更新DNS解析。

首先安装CloudflareST测速脚本:

 mkdir CloudflareST

cd CloudflareST

wget -N  https://github.com/XIU2/CloudflareSpeedTest/releases/download/v1.4.10/CloudflareST_linux_amd64.tar.gz

tar -zxf CloudflareST_linux_amd64.tar.gz

chmod +x CloudflareST

安装完成,然后安装pip,如果系统已经安装了可以忽略:

curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py

python get-pip.py

上面pip是2.7版本,可以根据自己的python去选择对应的版本。

接下来安装阿里云DNS 的api依赖:

pip install aliyun-python-sdk-alidns==2.6.29



接下来调用阿里的API更新DNS解析,保存以下代码到CloudflareST文件夹下,命名alidns.py。

#!/usr/bin/env python

#coding=utf-8


from aliyunsdkcore.client import AcsClient

from aliyunsdkcore.acs_exception.exceptions import ClientException

from aliyunsdkcore.acs_exception.exceptions import ServerException

from aliyunsdkalidns.request.v20150109.UpdateDomainRecordRequest import UpdateDomainRecordRequest

#去阿里获取accessKeyId和accessSecret

client = AcsClient('<accessKeyId>', '<accessSecret>', 'cn-qingdao')

fo = open("./result.csv", "rw+")

line = fo.readline()


#清除原有记录

request = UpdateDomainRecordRequest()

request.set_accept_format('json')

request.set_RecordId("RecordId去阿里云获取")

request.set_RR("主机记录")

request.set_Type("A")

request.set_Value("127.0.0.1")

request.set_Line("default")

response = client.do_action_with_exception(request)

#清除原有记录

request = UpdateDomainRecordRequest()

request.set_accept_format('json')

request.set_RecordId("RecordId去阿里云获取")

request.set_RR("主机记录")

request.set_Type("A")

request.set_Value("127.0.0.1")

request.set_Line("default")

response = client.do_action_with_exception(request)




#添加新纪录

request = UpdateDomainRecordRequest()

request.set_accept_format('json')

line = fo.readline()

line = line.split(",")

request.set_RecordId("RecordId去阿里云获取")

request.set_RR("主机记录")

request.set_Type("A")

request.set_Value(line[0])

request.set_Line("default")

response = client.do_action_with_exception(request)

print(str(response))


#添加新纪录

request = UpdateDomainRecordRequest()

request.set_accept_format('json')

line = fo.readline()

line = line.split(",")

request.set_RecordId("RecordId去阿里云获取")

request.set_RR("主机记录")

request.set_Type("A")

request.set_Value(line[0])

request.set_Line("default")

response = client.do_action_with_exception(request)

print(str(response))


fo.close()



接下来,修改alidns.py文件权限,chmod 777 alidns.py

好了,需要安装的文件已经安装完成,接下来就是测速脚本了:

cd CloudflareST

./CloudflareST -tl 160 -sl 12 -dn 5

./alidns.py

上面代码的意思是,筛选ping低于160ms的,网速大于12M/S的ip 5个,并更新速度最快的2个IP到阿里dns中对应RecordId的记录。

这段代码也可以保存为sh脚本,方便每次调用。


  1. 上一篇:centos7防火墙、ssh端口修改相关命令
  2. 下一篇:利用宝塔搭配nginx开启webdav
发表评论