openwrt定时优选Cloudflare IP并更新到dnspod

openwrt定时优选Cloudflare IP并更新到dnspod

哔哩哔哩:

YouTube

一:准备工作

1.下载ip优选工具CloudflareST

1.1 作者地址:
https://github.com/XIU2/CloudflareSpeedTest/releases
国内下载:
https://pan.lanzouv.com/b0742hkxe
1.2 版本选择:

1.2.1 路由器一般是Mips、Mipsle架构,而软路由要看是不是ARM架构,不清楚可以都试试,能正常运行就代表选对了。
1.2.2 而我的openwrt不能运行Mips、Mipsle架构,而可以运行Linux_amd64位的,所以我下载的是CloudflareST_linux_amd64.tar.gz
1.2.3 下载完毕解压待用,我们只需要用到CloudflareSTip.txt这两个文件,其他的可以删除。

2.下载我准备的脚本包

2.1 下载地址:
v1.1点击下载
更新了自动停止和启动openclash和bypass插件的选项。但是没有测试过,有需求的可以试试。

2.2 全部解压到和CloudflareST同一目录

2.2.1 因为我非科班出身,所以脚本制作的很简陋,有很多地方需要设置,这个待会儿会讲到。

3.准备一个域名并托管到dnspod

3.1 准备一个域名托管到dnspod
3.2 dnspod控制台:
https://console.dnspod.cn/

二.使用FinalShell或者同类型的软件连接路由器

1.登录路由器后台,开启SSH访问功能(开启则跳过这一步)。

1.1 开启SSH访问一般在 系统-管理权-SSH访问-勾选"密码验证"和"允许root用户凭密码登录"-保存并应用即可。

2.使用FinalShell或者同类型的软件连接路由器

2.1 推荐使用FinalShell,因为对小白来说用来修改配置最简单
2.1.1 FinalShell下载地址:
https://www.hostbuf.com/t/988.html
2.2 填写连接信息保存并连接

三.在路由器内新建文件夹并上传所需文件

1.新建文件夹名称为ip

1.1 使用命令行

#创建名称为ip的文件夹
mkdir ip

1.2 使用可视化
点击文件-root-在空白处右键-新建-文件夹-更名为ip

2.上传文件

2.1 将之前准备的所有文件拖入ip文件夹

四.给予CloudflareST可执行权限

1.配置权限

1.1 使用命令行

进入到ip目录下
cd ip/
#给CloudflareST配置可执行权限
chmod +x CloudflareST

2.测试CloudflareST

2.1 使用命令行

#试运行CloudflareST,测试版本是否兼容本系统
./CloudflareST

2.1.2 如果出现一下显示则为可用

2.1.3 如果报错则本版与系统不匹配需要更换CloudflareST文件,并重新配置权限
2.1.4 版本选择推荐

五.配置dnspod

1.编辑配置文件

1.1 找到ip.sh并双击打开

2.修改dnspod配置

2.1 修改登录令牌"ID,Token"
2.1.1 点击我的-API密钥-DNSPod Token-创建一个密钥

2.1.2 在配置文件中修改LOGIN_TOKEN 注意:在创建密钥时才会显示token,此时就应该保存,关掉后就看不到全部的信息了。

2.2 修改域名ID
2.2.1 回到控制台-DNS解析-选择要DDNS的域名-点击域名设置-记录Domain ID

2.2.2 在配置文件中修改DOMAIN_ID

3.新增子域名(二级域名)

3.1 返回记录管理-新建一个域名用来记录优选ip
3.1.1 填写主机记录(用来组成二级域名,例如:ip)
3.1.2 选择记录类型(选择A记录)
3.1.3 填写记录值(这里填写IP地址,可随意,例如:1.1.1.1)
3.1.4 填写完成点击确认

3.2 在配置文件中修改SUB_DOMAIN

4.查询子域名ID

4.1 确认配置文件最后为 . ip_sub

4.1.1确认完毕保存文件 或直接使用ctrl+s快捷键保存

4.2 命令行进入ip文件夹并执行ip.sh

#进入ip文件夹
cd ip/
#执行ip.sh
bash ip.sh

4.3 学艺不精,只能从返回的数据中人工找到子域名id
4.3.1 根据返回的信息,找到records后的id,这个id就是子域名的id,后面查询的ip地址正好是我们之前随意输入1.1.1.1

4.4 在配置文件中修改RECORD_ID

5.结束dnspod配置

5.1 到配置文件的最下方可以将工作模式从获取子域名的id改为测速并ddns了
5.1.1 将. ip_sub修改为. ip_ddns

5.1.2 保存即可

六.编辑openwrt科学网络插件配置

1.是否自动停止科学网络

1.1 在优选节点时,如果不停止科学网络,则会影响到优选结果,所以推荐开启该功能。
1.2 什么时候关闭该功能呢?
1.2.1 在openwrt使用非passwallpasswall2ShadowSocksR Plus+clash这几个客户端时,建议关闭该功能。
1.2.2 在非openwrt系统,例如在Debian、Ubuntu等运行此脚本时,建议关闭该功能。
1.2 true优选节点时自动停止 false优选节点时,不自动停止。 默认为 true

2.选择正在使用哪个科学网络插件

2.1 根据openwrt真正使用的插件来选择。
2.2 填写对应插件前方的值 1=passwall 2=passwall2 3=ShadowSocksR Plus+ 4=clash 默认值为 1
2.3.1 例如passwall客户端

2.3.2 例如passwall2客户端

七.CloudflareST高级配置

1.测速地址

1.1 部署自己的测速节点(我们这里怎么操作不谈,只谈好处)
1.1.1 在CDN网站部署自己的测速节点,这样更佳稳定
1.1.2 通常这个工具只用来优选Cloudflare的CDN节点,如果需要优选amazon的CloudFront则需要自建测速节点,以及修改IP.txt文件内的ip段。这个教程可以学习不良林大佬的教程
教程地址:
点击前往YouTube
1.2 如果不配置地址,则是默认用CloudflareST作者默认的地址,效果可能没有这么好

2.其他参数

2.1 其他参数都在配置文件中有详细的备注,可以根据自己的情况进行调整

八.运行与定时运行

1.脚本运行

1.1 使用命令行

#进入ip文件夹
cd ip/
#执行ip.sh
bash ip.sh

1.2 等子弹飞一会儿,就会将排名第一的优质ip自动更新到dnspod
1.2.1 返回以下代码就说明更新成功了

1.2.2 我们可以在的dnspod的域名操作日志中看到ip进行了更新

此时我们访问子域名我这里完整的子域名ip.1921.eu.org解析得到的就是优选的ip了。

2.添加定时运行

2.1 打开openwrt 系统-计划任务-将一下字段复制到空白部分粘贴保存

#表示每天凌晨3点整 进入ip目录 执行ip.sh脚本
00 03 * * * cd /root/ip/ && bash ip.sh

2.1.1 定时配置时间规则从左至右依次是
minute (0 - 59) hour (0 - 23) day of month (1 - 31) month (1 - 12) day of week (0 - 6) (Sunday=0 or 7)

九.注意事项

1.由于运行该脚本测速需要关闭科学网络,所以定时最好选在不影响使用的时段。

2.目前优选自动暂停科学网络客户端脚只测试了passwallpasswall2,其他的没有测试,不知道有没有问题。

3.在eSir的openwrt中ShadowSocksR Plus+客户端运行程序是shadowsocksr,清楚其他openwrt是否一样,如果不一样则不能正常暂停ShadowSocksR Plus+客户端。

4.将来遇到CloudflareST更新,我们只需要替换CloudflareST这个可执行文件,并配置好权限就行了。