Please enable Javascript to view the contents

CF自动优选IP

 ·  ☕ 1 分钟  ·  ✍️ YSL

获取passwall中节点的id

vi /etc/config/passwall 

在openwrt中新建脚本cf.sh

#!/bin/bash
sleep 8s

/etc/init.d/haproxy stop
/etc/init.d/passwall stop

# 进入 CloudflareST 目录
cd /root/CloudflareST

# 运行 CloudflareST 测速(脚本示例中的 CloudflareST 位于 /root/CloudflareST 目录下)
./CloudflareST -tll 90

# 获取最快 IP
IP=$(sed -n "2,1p" result.csv | awk -F, '{print $1}')

# 判断一下是否成功获取到了最快 IP(如果没有就退出脚本):
[[ -z "${IP}" ]] && echo "CloudflareST 测速结果 IP 数量为 0,跳过下面步骤..." && exit 0

# 修改 passwall 里对应节点的 IP(XXX 就是节点 ID)
uci set passwall.XXX.address="${IP}"
uci set passwall.XXX.address="${IP}"
uci commit passwall
/etc/init.d/haproxy restart
/etc/init.d/passwall restart
exit

设置定时任务

早上八点执行一次

0 8 * * * bash /root/cf.sh > /dev/null 2>&1 &