说明
之前有人免费提供解析Cloudflare_IP的域名,但很快就被DNS污染了,因此此教程适合自己使用不建议分享。实现的原理很简单,第一使用CloudflareSpeedTest程序进行测速,选出质量高的IP地址;第二使用免费ddns将域名解析到优选的IP;第三使用cron定时执行任务。脚本适用amd64、arm64、arm架构的Linux服务器,安卓手机Termux使用需要做一定的修改,请点击目录直接查看内容。
Dynv6
需要借助Dynv6来获取免费域名和ddns,hostname是注册的二级域名,token位于网站首页左上角Documentation
-> APIs
页面内,空格之后的不要。两项复制之后在脚本执行后按提示输入即可。
自定义
echo "0 0 * * * timeout 10m $path/bestip.sh > /dev/null 2>&1" | crontab -
双引号内的内容是定时执行命令,为每日0时。
$path/CloudflareST -f $path/ip.txt -tl 200 -sl 6 -dn 5 -dt 10 -o "bestip"
CloudflareST的使用可参考,以上为选择时延小于200ms的IP进行测试,每个测试10秒限制6mb/s以上,得到5个合格IP。
ipv6=$(grep -oE "\b([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4}\b" $path/bestip | head -1)
如果对ipv6有需求,请将ip.txt改为ipv6.txt,并将脚本内的ipv4改为ipv6。
脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| #!/bin/sh
check_() { # 检查服务器架构 architecture=$(uname -m) case $architecture in x86_64) platform="amd64" ;; aarch64) platform="arm64" ;; arm*) platform="armv7" ;; *) echo "脚本不支持 $architecture" exit 1 ;; esac }
first_() { # 下载测速工具并定时每日0点执行 mkdir -p $path && cd $path latest_release=$(curl -s https://api.github.com/repos/XIU2/CloudflareSpeedTest/releases/latest | grep "tag_name" | awk '{print $2}' | tr -d '",') download_url="https://github.com/XIU2/CloudflareSpeedTest/releases/download/$latest_release/CloudflareST_linux_$platform.tar.gz" curl -LO $download_url || exit 1 tar -xvf CloudflareST_linux_$platform.tar.gz && rm CloudflareST_linux_$platform.tar.gz && chmod +x CloudflareST echo "0 0 * * * timeout 10m $path/bestip.sh > /dev/null 2>&1" | crontab - read -p "请输入 hostname:" hostname read -p "请输入 token:" token }
start_() { # 测速并更新IP cat <<EOF > $path/bestip.sh #!/bin/sh
$path/CloudflareST -f $path/ip.txt -tl 200 -sl 6 -dn 5 -dt 10 -o "bestip" ipv4=\`grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" $path/bestip | head -1\` curl -Ls "http://dynv6.com/api/update?hostname=$hostname&token=$token&ipv4=\$ipv4" EOF chmod +x $path/bestip.sh && timeout 10m $path/bestip.sh }
path="/opt/CloudflareST" check_ first_ start_ exit
|
Termux
手机使用不必设置定时,mkdir bestip && cd bestip
后执行脚本即可。之后每次执行cd bestip && ./bestip.sh
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| #!/bin/sh
first_() { # 下载测速工具 latest_release=$(curl -s https://api.github.com/repos/XIU2/CloudflareSpeedTest/releases/latest | grep "tag_name" | awk '{print $2}' | tr -d '",') download_url="https://github.com/XIU2/CloudflareSpeedTest/releases/download/$latest_release/CloudflareST_linux_arm64.tar.gz" curl -LO $download_url || exit 1 tar -xvf CloudflareST_linux_arm64.tar.gz && rm CloudflareST_linux_arm64.tar.gz && chmod +x CloudflareST read -p "请输入 hostname:" hostname read -p "请输入 token:" token }
start_() { # 测速并更新IP cat <<EOF > bestip.sh #!/bin/sh
./CloudflareST -tl 200 -sl 6 -dn 5 -dt 10 -o "bestip" ipv4=\`grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" bestip | head -1\` curl -Ls "http://dynv6.com/api/update?hostname=$hostname&token=$token&ipv4=\$ipv4" EOF chmod +x bestip.sh && ./bestip.sh }
first_ start_ exit
|