刷了一段时间后发现访问CF的下载链接报错403了,应该是被封禁了下载端机器的ip,有碰到相同情况的童鞋可以自行替换URL为可用的直链,下面给出结合前面大佬优化成功以及自用可用的链接的配置文件
services:
traffic-keeper:
image: alpine:latest
container_name: net-flow-generator
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
logging:
driver: "json-file"
options:
max-size: "5m"
max-file: "3"
tmpfs:
- /tmp
command:
- /bin/sh
- -c
- |
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
apk add --no-cache curl
echo "流量保镖服务启动...开始平衡你的上下行比例"
while true; do
# 随机生成本次要连续执行的下载次数(1-5次,ash兼容语法)
RUN_TIMES=$$(expr $$RANDOM % 3 + 1)
echo "$$(date +'%F %T'): 本轮将连续执行$${RUN_TIMES}次下载任务..."
# 改用ash兼容的while循环实现连续执行(替代bash的for ((...)))
i=1
while [ $${i} -le $${RUN_TIMES} ]; do
echo "$$(date +'%F %T'): 执行第$${i}/$${RUN_TIMES}次下载任务..."
# curl命令分行书写,提高可读性
curl -L -o /dev/null \
-# -S \
--limit-rate 3M \
-H 'Cache-Control: no-cache' \
-A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" \
--connect-timeout 15 \
--max-time 3600 \
--retry 5 \
--retry-delay 10 \
-w "\n结果: 耗时%{time_total}s | 均速%{speed_download}B/s | 状态%{http_code}\n" \
"http://updates-http.cdn-apple.com/2019WinterFCS/fullrestores/041-39257/32129B6C-292C-11E9-9E72-4511412B0A59/iPhone_4.7_12.1.4_16D57_Restore.ipsw" || \
echo "第${i}次下载异常,继续执行下一次..."
# i自增(ash兼容语法)
i=$$(expr $${i} + 1)
done
# 所有连续任务执行完后,随机休息1-3000秒(ash兼容语法)
RANDOM_SLEEP=$$(expr $$RANDOM % 3000 + 1)
echo "$$(date +'%F %T'): 本轮$${RUN_TIMES}次任务执行完毕,随机休息$${RANDOM_SLEEP}秒..."
sleep $${RANDOM_SLEEP}
done