收起左侧

利用Docker,定时刷下载流量

10
回复
992
查看
[ 复制链接 ]

6

主题

41

回帖

0

牛值

初出茅庐

2026-1-31 09:32:52 显示全部楼层 阅读模式

根据这篇“是时候出手了,规避运营商PCDN误判限速”,配置使用后觉得一直都在下载,下载的流量会超级大
因为个人的特殊癖好,不想一直都在下载,所以我用豆包修改了部分代码,增加一个自定义设置项,可以修改运行日期和时间、下载速度、单词下载文件大小、检测时间,下载链接等;但不知道问什么,有时候会报错的,不过这个报错不影响正常运行下载,如果有哪位大佬可以帮忙修正一下

image.png

image.png

附上代码:

version: '3.8'

`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: `

- -c
# ===================== 可自定义配置项(按需修改) =====================
# 运行星期(1=周一,2=周二...7=周日,多个用空格分隔,如​"1 2 3 4 5​"仅工作日)
RUN_WEEKDAYS=​"1 2 3 4 5 6​"
# 每日运行开始时间(格式:HH:MM:SS)
RUN_START_TIME=​"00:00:00​"
# 每日运行结束时间(格式:HH:MM:SS)
RUN_END_TIME=​"17:29:59​"
# 下载速度限制(如2M=2MB/s、1000K=1000KB/s)
DOWNLOAD_SPEED=​"500K​"
# 单次下载文件大小(字节,2000000000=约2GB)
DOWNLOAD_SIZE=​"1500000000​"
# 运行时:下载完成后休息时间(秒)
RUN_INTERVAL=​"3600​"
# 非运行时:检测是否到运行时间的间隔(秒)
IDLE_CHECK_INTERVAL=​"600​"
# 下载链接(可直接替换)
DOWNLOAD_URL=​"https://speed.cloudflare.com/__down?bytes=​"
# ===================== 固定逻辑(无需修改) =====================
# 替换阿里云源+安装curl(保留原错误检查)
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories​&​& \
apk add --no-cache curl
code
收藏
送赞 1
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

0

主题

5

回帖

0

牛值

江湖小虾

2026-1-31 20:47:25 显示全部楼层

大佬 这个咋用啊

有新的这段代码吧,原来的代码不全  详情 回复
2026-2-8 16:04
复制代码去部署DOCKER就可以了  详情 回复
2026-2-1 23:05

1

主题

13

回帖

0

牛值

江湖小虾

2026-2-1 10:07:55 显示全部楼层

可以有办法绕过代理吗?我问ai修改后,一直报错,无法解决

有新的这段代码吧,原来的代码不全  详情 回复
2026-2-8 16:03
我是用豆包修改的,可以直接构建运行的噢  详情 回复
2026-2-1 23:04

6

主题

41

回帖

0

牛值

初出茅庐

2026-2-1 23:04:37 楼主 显示全部楼层
jiangchn1990 发表于 2026-2-1 10:07
可以有办法绕过代理吗?我问ai修改后,一直报错,无法解决

我是用豆包修改的,可以直接构建运行的噢

6

主题

41

回帖

0

牛值

初出茅庐

2026-2-1 23:05:07 楼主 显示全部楼层

复制代码去部署DOCKER就可以了

6

主题

41

回帖

0

牛值

初出茅庐

2026-2-8 15:59:39 楼主 显示全部楼层
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
      - |
        # ===================== 飞牛NAS适配配置项 =====================
        #运行星期(1=周一,2=周二...7=周日,多个用空格分隔,如"1 2 3 4 5"仅工作日)
        RUN_WEEKDAYS="1 2 3 4 5 6 7"
        #每日运行开始时间(格式:HH:MM:SS)
        RUN_START_TIME="09:00:00"
        #每日运行结束时间(格式:HH:MM:SS)
        RUN_END_TIME="17:29:59"
        #下载速度限制(如2M=2MB/s、1000K=1000KB/s)
        DOWNLOAD_SPEED="500K"
        # 单次下载大小(字节,通过Range请求实现)
        DOWNLOAD_SIZE="2000000000"
        # 运行时:下载完成后休息时间(秒),1小时=3600秒
        RUN_INTERVAL="4000"
        # 非运行时:检测是否到运行时间的间隔(秒),10分钟=600秒
        IDLE_CHECK_INTERVAL="600"
        # 飞牛NAS常用稳定源(微软公开资源,支持Range,长期有效)
        DOWNLOAD_URL="https://catalog.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/b7aa64b3-8441-4d36-b8f7-409f3cfeac1c/public/windows11.0-kb5074109-x64_fe29a336e6e650dda4038e82bcc0c6286c70b9a1.msu"
        # ===================== 固定逻辑 =====================
        sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
        apk add --no-cache curl || { echo "安装 curl 失败,退出"; exit 1; }
  
        echo "=== 飞牛NAS流量脚本启动 ==="
        echo "当前配置:"
        echo "  运行星期: $$RUN_WEEKDAYS"
        echo "  运行时段: $$RUN_START_TIME - $$RUN_END_TIME"
        echo "  下载速度: $$DOWNLOAD_SPEED"
        echo "  下载大小: $$DOWNLOAD_SIZE 字节"
        echo "  下载链接: $$DOWNLOAD_URL"
        echo "========================"

        # 预检测链接是否可用
        echo "=== 检测下载链接有效性 ==="
        curl -I -L -s -w "%{http_code}\n" -o /dev/null "$$DOWNLOAD_URL" | grep -q "200"
        if [ $$? -ne 0 ]; then
          echo "⚠️  下载链接无效,脚本退出"
          exit 1
        fi
        echo "✅  下载链接可用"
  
        while true; do
          current_weekday=$$(date +%u)
          current_time=$$(date +%T)
        
          start_sec=$$(echo "$$RUN_START_TIME" | awk -F: '{print $$1*3600 + $$2*60 + $$3}')
          end_sec=$$(echo "$$RUN_END_TIME" | awk -F: '{print $$1*3600 + $$2*60 + $$3}')
          current_sec=$$(echo "$$current_time" | awk -F: '{print $$1*3600 + $$2*60 + $$3}')
        
          in_weekday=$$(echo "$$RUN_WEEKDAYS" | grep -w "$$current_weekday" | wc -l)
          in_time=0
          if [ $$current_sec -ge $$start_sec ] && [ $$current_sec -le $$end_sec ]; then
            in_time=1
          fi
        
          if [ $$in_weekday -eq 1 ] && [ $$in_time -eq 1 ]; then
            echo "$$(date +'%F %T'): [运行时段] 开始执行下载任务..."
            # 用HTTP Range请求实现指定大小下载(飞牛NAS适配逻辑)
            range_end=$$((DOWNLOAD_SIZE - 1))
            curl -L -o /dev/null \
              -sS \
              --limit-rate "$$DOWNLOAD_SPEED" \
              --range "0-$$range_end" \
              -H 'Cache-Control: no-cache' \
              -H 'Accept: */*' \
              -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" \
              --connect-timeout 20 \
              --max-time 7200 \
              --retry 10 \
              --retry-delay 15 \
              -w "结果: 耗时%{time_total}s | 均速%{speed_download}B/s | 状态%{http_code}\n" \
              "$$DOWNLOAD_URL"
     
            if [ $$? -ne 0 ]; then
              echo "$$(date +'%F %T'): 下载异常,稍后重试"
            fi
            echo "$$(date +'%F %T'): 本轮任务结束,休息$$RUN_INTERVAL秒..."
            sleep $$RUN_INTERVAL
          else
            echo "$$(date +'%F %T'): [空闲时段] 当前星期$$current_weekday $$current_time,非运行时间,$$IDLE_CHECK_INTERVAL秒后再次检查..."
            sleep $$IDLE_CHECK_INTERVAL
          fi
        done

这段才是完整的代码,可以正常下载了,因为是第一次发含代码的,所以不知道原来的是不完整

请问这个是否可以自动绕过代理进行下载?  详情 回复
2026-2-9 09:39

6

主题

41

回帖

0

牛值

初出茅庐

2026-2-8 16:03:52 楼主 显示全部楼层
jiangchn1990 发表于 2026-2-1 10:07
可以有办法绕过代理吗?我问ai修改后,一直报错,无法解决

有新的这段代码吧,原来的代码不全

6

主题

41

回帖

0

牛值

初出茅庐

2026-2-8 16:04:27 楼主 显示全部楼层

有新的这段代码吧,原来的代码不全

1

主题

13

回帖

0

牛值

江湖小虾

2026-2-9 09:39:46 显示全部楼层
qewrf 发表于 2026-2-8 15:59
services:
  traffic-keeper:
    image: alpine:latest

请问这个是否可以自动绕过代理进行下载?
不知道喔,我是给豆包去修改出来的,你可以尝试下,这个版本是可以修改配置比较稳定,没有报错的  详情 回复
2026-2-9 11:37

6

主题

41

回帖

0

牛值

初出茅庐

2026-2-9 11:37:49 楼主 显示全部楼层
jiangchn1990 发表于 2026-2-9 09:39
请问这个是否可以自动绕过代理进行下载?

不知道喔,我是给豆包去修改出来的,你可以尝试下,这个版本是可以修改配置比较稳定,没有报错的

7

主题

5

回帖

0

牛值

江湖小虾

为啥提示构建失败

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则