获取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 &