V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
chackchackGO
V2EX  ›  Linux

Linux 多线程下载, 设定了 user-agent 依然被 403.

  •  
  •   chackchackGO · Jan 10, 2024 · 2547 views
    This topic created in 848 days ago, the information mentioned may be changed or developed.

    在下载 miuirom (一个线程限制了 50KBps 左右).
    尝试了 windows 的 idm,最大只支持 32 线程下载.

    于是尝试用 linux 下的 axel .
    调节了线程数, 调节了 --no-proxy, 从浏览器里 copy 了一个 user-agent.
    全都立刻被告知 403 forbidden.

    我是哪里做的不对了?

     axel -a -n 128 \
    --user-agent="Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko" --no-proxy \
    "https://bigota.d.miui.com/V14.0.8.0.TKXEUXM/miui_NABUEEAGlobal_V14.0.8.0.TKXEUXM_13889f8121_13.0.zip"
    
    22 replies    2024-08-11 11:34:14 +08:00
    LLaMA2
        1
    LLaMA2  
       Jan 10, 2024
    缺少必要的 header

    具体你得看你可以下载的时候

    有哪些 header ,统统补上
    busier
        2
    busier  
       Jan 10, 2024 via Android
    万一人家验了 cookies 呢
    chackchackGO
        3
    chackchackGO  
    OP
       Jan 10, 2024
    @busier 我都用 idm 了, 还有可能验证 cookie 吗?
    busier
        4
    busier  
       Jan 10, 2024 via Android   ❤️ 1
    集成到浏览器的下载工具,是会带上浏览器 cookies 进行请求的。
    chackchackGO
        5
    chackchackGO  
    OP
       Jan 10, 2024
    @LLaMA2 请问怎么捕获下载时的 http request 方便?
    dev tools 似乎没有捕获到.
    bluehr
        6
    bluehr  
       Jan 10, 2024
    @chackchackGO 为啥不可能,很早之前的百度云用 IDM 下载就得设置 cookie
    chackchackGO
        7
    chackchackGO  
    OP
       Jan 10, 2024
    @bluehr 学习了 谢谢.
    @busier
    busier
        8
    busier  
       Jan 10, 2024 via Android
    还有 referer 有的要验
    LLaMA2
        9
    LLaMA2  
       Jan 10, 2024   ❤️ 1
    curl 'https://bigota.d.miui.com/V14.0.8.0.TKXEUXM/miui_NABUEEAGlobal_V14.0.8.0.TKXEUXM_13889f8121_13.0.zip' \
    -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7' \
    -H 'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6' \
    -H 'Connection: keep-alive' \
    -H 'DNT: 1' \
    -H 'Referer: https://mirom.ezbox.idv.tw/en/phone/nabu/' \
    -H 'Sec-Fetch-Dest: document' \
    -H 'Sec-Fetch-Mode: navigate' \
    -H 'Sec-Fetch-Site: cross-site' \
    -H 'Sec-Fetch-User: ?1' \
    -H 'Upgrade-Insecure-Requests: 1' \
    -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0' \
    -H 'sec-ch-ua: "Not_A Brand";v="8", "Chromium";v="120", "Microsoft Edge";v="120"' \
    -H 'sec-ch-ua-mobile: ?0' \
    -H 'sec-ch-ua-platform: "Linux"' \
    --compressed \
    -o 123.zip
    chackchackGO
        10
    chackchackGO  
    OP
       Jan 10, 2024
    @LLaMA2
    @bluehr
    @busier
    为了捕获下载时的 http request, 我走了个 burp suite 的代理.
    然后在浏览器上被弹 403 forbidden 了.

    怎么只是经过了个本地代理还会被 forbidden 呢, burp 改了 request 内容吗?

    下载个国内资源好难.
    chackchackGO
        11
    chackchackGO  
    OP
       Jan 10, 2024
    @LLaMA2 感谢.
    axel 不知道为什么限制 9 个 header.
    我去掉了一些感觉可能不需要的 header 勉强能下载了
    ```
    axel -a -n 256 --no-proxy 'https://bigota.d.miui.com/V14.0.8.0.TKXEUXM/miui_NABUEEAGlobal_V14.0.8.0.TKXEUXM_13889f8121_13.0.zip' \
    -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7' \
    -H 'Connection: keep-alive' \
    -H 'Referer: https://mirom.ezbox.idv.tw/en/phone/nabu/' \
    -H 'Sec-Fetch-Dest: document' \
    -H 'Sec-Fetch-Site: cross-site' \
    -H 'Sec-Fetch-User: ?1' \
    -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0' \
    -H 'sec-ch-ua: "Not_A Brand";v="8", "Chromium";v="120", "Microsoft Edge";v="120"' \
    -H 'sec-ch-ua-platform: "Linux"'
    ```
    bigtear
        12
    bigtear  
       Jan 10, 2024
    你的方法一开始就错了,直接 hosts 改到不限速的服务器下载 rom 就行了
    ```
    bigota.d.miui.com: 123.6.13.6
    hugeota.d.miui.com: 123.6.13.6
    ```
    bigtear
        13
    bigtear  
       Jan 10, 2024
    不好意思,上个月下载 rom 的时候这个方法还有效,现在去看了下怎么下载 rom 直接 403 了,太狗了吧,下载的还是最新的 rom 不是旧版的...
    chackchackGO
        14
    chackchackGO  
    OP
       Jan 10, 2024   ❤️ 1
    @bigtear 那我在这顺便吐槽一下,我接着遇到了我的 mi 设备,在 fastboot mode 下,usb 口不工作。
    真正意义上的不工作,插上任何系统的设备都无法在设备列表里检测到。(设备都没有检测到所以更谈不上驱动问题了)。

    已经放弃了,以后买国际品牌好了。
    ceeeeeeeeeeeeeeb
        15
    ceeeeeeeeeeeeeeb  
       Jan 10, 2024
    很多自定义头 一个不要落下
    dnslint
        16
    dnslint  
       Jan 10, 2024
    idm 的插件会做这件事情,另外 你的手机可能是 usb2.0
    Beats
        17
    Beats  
       Jan 10, 2024
    全部带上,鬼知道人家校验了啥,有的还校验时间戳呢
    flynaj
        18
    flynaj  
       Jan 12, 2024 via Android
    chackchackGO
        19
    chackchackGO  
    OP
       Jan 12, 2024
    @flynaj
    @dnslint
    小米系列产品基本可以默认是 usb2.0.
    能稍微讲解一下这和“唯独 fastboot 下,设备从根本上无法发现”有什么关联吗?
    flynaj
        20
    flynaj  
       Jan 12, 2024
    @chackchackGO #19 这个是补你的系统。你电脑上的 usb3.0 接口。小米手机为了私有的快充协议,全部只有 usb2.0.
    chackchackGO
        21
    chackchackGO  
    OP
       Jan 13, 2024
    @flynaj 没用.
    我的情况是设备在 fastboot 模式下, 从底层都无法检测到.
    用 linux 也是, 连接电脑 usb2 口后, 系统没有检测到任何设备连接.
    要不是没有工具, 我觉得我甚至可以验证在 fastboot 下连接 usb 口可能连一点电信号都没有.
    chackchackGO
        22
    chackchackGO  
    OP
       Aug 11, 2024
    @chackchackGO
    应该是驱动问题, 错信了小米官方提供的 usb 驱动.
    尝试了很多个简中 web 提供的驱动都是这个问题.

    用 android studio 提供的驱动就修复了.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   976 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 63ms · UTC 19:14 · PVG 03:14 · LAX 12:14 · JFK 15:14
    ♥ Do have faith in what you're doing.