ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

hydra CLI 10分钟速成教程:10个常用命令搞定多线程下载、断点续传与输出控制

hydra CLI 10分钟速成教程:10个常用命令搞定多线程下载、断点续传与输出控制

【免费下载链接】hydra

A fast, resilient, multi-source file retriever and download engine

项目地址:https://gitcode.com/gh_mirrors/hydra74/hydra
点击查看免费下载

hydra CLI是一个开源的高性能多线程下载工具,一条命令即可自动拆分连接、实时再平衡负载,并支持断点续传、多镜像聚合、限速和灵活输出控制。它同时兼容wget/curl风格参数,让老脚本几乎零成本迁移。这篇教程带你用 10 分钟、10 个常用命令,从零掌握 hydra 下载器的核心玩法。

💡 为什么选 hydra?官方基准测试中,hydra -x 8在 100ms 往返链路上下载 1GB 文件平均达到414 MB/s(2.6 秒完成),内存占用仅为同配置 aria2c 的 1/3、curl 的 2/5。调度与限速的实现分别在 crates/hydra-core/src/sched.rs 与 crates/hydra-core/src/rate.rs。

一、快速安装 hydra 下载器

按需选择一种方式,装完后hydra与短名hya都在PATH中:

平台命令
macOS / Linuxcurl -fsSL .../install.sh \| bash -s -- --cli(仅装 CLI)
macOS / Linuxbrew install ja7ad/tap/hydra
Windows (PowerShell)irm .../install.ps1 \| iex
Arch Linuxparu -S hydra-download-manager-bin

⚠️ Ubuntu 上包名是hydra-download-manager,直接apt install hydra装到的是另一款同名密码破解工具。

想从源码构建?clone 仓库后执行cargo build --release,产物位于target/release/hydra:

git clone https://gitcode.com/gh_mirrors/hydra74/hydra cd hydra cargo build --release

安装完成后,运行hydra -V查看版本,hydra --help查看全部参数。完整的参数字典请查阅手动页 docs/man/hydra.1。

二、命令 1:一条命令完成下载(自动探测并行度)

hydra https://example.com/archive.tar.gz

不带任何参数时,hydra 会先实测这条链路能支撑多少并行连接,只打开真正有用的数量——单连接已跑满的链路上不会盲目开更多连接。进度条、剩余时间、续传能力一目了然。

三、命令 2:-x N手动指定多线程连接数

hydra -x 8 https://example.com/largefile.iso

-x(等同--max-connection-per-server)为每个来源固定打开 N 条连接,-s N是它面向 aria2c 习惯的别名。桌面版 GUI 中对应的「每个文件拆分为多条连接、实时再平衡」效果如图所示:

小提示:小文件永远不会被过度拆分(每 256 KiB 最多一条连接),1 KiB 的文件也只发 1 个请求。

四、命令 3:-O/-P/-y控制输出文件与目录

# 指定输出文件名 hydra https://example.com/archive.tar.gz -O output.tar.gz # 保存到目录(不存在会自动创建),-y 按文件真实类型自动归档 hydra -P ./downloads -y https://example.com/app.zip
  • -O FILE:输出文件名,始终优先于 URL 推断的默认名
  • -P DIR:输出目录,等价于wget的-P
  • --remote-name:按 URL 最后一段命名(curl 的-O语义)
  • -y(--sort-by-type):按文件头 magic bytes而非扩展名,把成品归档进Video、Music、Compressed等分类子目录

批量下载时按类型自动分文件夹的效果:

其他常用输出开关:--no-clobber(文件已存在则跳过,即wget -nc)、-f(强制覆盖)、--stdout(结果写标准输出,方便管道处理)、--no-save(只测速不落地)。

五、命令 4:-c断点续传,中断不白下

# 下载中断后,同一条命令加 -c 从断点继续 hydra -c https://example.com/largefile.iso

hydra 在传输过程中持续写入续传 sidecar 记录;按Ctrl-C会立刻把当前实际持有的区间写入续传记录并退出(退出码 130),下次-c直接从断点开始。若远端文件已变化(续传校验发现对不上),hydra 会拒绝续传并打印原因,而不是拼出一个坏文件。相关逻辑见 crates/hydra-net/src/transfer.rs。

六、命令 5:--mirrors多镜像聚合下载

hydra --mirrors \ https://mirror1.example.org/file.iso \ https://mirror2.example.org/file.iso

默认情况下多个 URL 会下载成多个文件;加上--mirrors后,它们被视为同一个文件的多个镜像,hydra 把字节区间在多个来源之间拼接组装,并实时把慢源的活儿偷给快源(Range Stealing)。若某来源与文档声明的大小或校验器不一致,会被带原因剔除。

七、命令 6:--limit-rate限速,跑满不伤网卡

hydra --limit-rate 5M https://example.com/big.iso

按聚合速率封顶(支持500k、2M这类写法)。写错格式会直接报错退出,而不是静默变成不限速——避免在计费和共享链路上「超速」翻车。配合--polite(每个主机只用一条连接)则更适合志愿者镜像站。

八、命令 7:一次下载多个 URL(并行 / 排队)

# 默认并行抓取多个不同文件,--parallel-max 控制同时进行的任务数 hydra --parallel-max 4 URL1 URL2 URL3 # 改为逐个排队下载 hydra --mode queue URL1 URL2 URL3 # 从文件读取 URL 列表,每行一个 hydra --input-file urls.txt

九、命令 8:--inspect探测与--list-streams流媒体

# 只探测不下载:文件大小、类型、是否支持断点、重定向链等 hydra --inspect https://example.com/release.iso # 列出 HLS/DASH 流的全部清晰度档位 hydra --list-streams https://stream.example.com/master.m3u8 # 下载流媒体并指定清晰度(取不到精确匹配时选向下最近的档位) hydra --quality 720 https://stream.example.com/master.m3u8

.m3u8/.m3u/.mpd结尾的 URL 会被自动识别为自适应流清单;HLS 与 DASH 的解析代码位于 crates/hydra-stream/src/hls.rs 与 crates/hydra-stream/src/dash.rs。直播录制可用--record-seconds 60录满 60 秒媒材后收尾,得到一个完整可播放文件。

十、命令 9:hydra interactive交互式队列(TUI)

# 启动全屏队列管理器,URL 会在启动时入队 hydra interactive https://example.com/file1.iso https://example.com/file2.zip

队列持久化在本地状态文件中,下次启动自动接回。常用按键:

按键功能
a添加 URL
j/k上下选择任务
p/r暂停 / 恢复
d取消任务
+/-调整队列并行度
b后台运行(离开界面,下载继续)
q停止并退出

按键表与细节见 docs/man/hydra-interactive.1,实现位于 crates/hydra-cli/src/tui.rs。

十一、命令 10:hydra checksum校验与--json机器可读输出

# 查询发布方公布的摘要(头部摘要 → 旁挂 .sha256 文件 → 生态索引) hydra checksum https://example.com/release.tar.gz # 下载完成后按目标哈希校验,不匹配则退出码为 1 hydra --checksum sha256:e3b0c442... URL # 结果以 JSON 输出到标准输出,方便脚本解析(隐含静默模式) hydra --json URL

--print-checksum则会在完成后报告文件的 SHA-256。checksum子命令的完整信任链说明见 docs/man/hydra-checksum.1。

十二、日志与进阶输出控制速查

需求参数
只留错误输出-q/--quiet
详细 / 调度器级详细-v/-vv
打印请求与响应头-S
只探测头部不取正文--spider
日志写入文件(无 ANSI,可 grep)-o log.txt/--logfile-append log.txt
兼容 wget / curl 方言--compat wget或--compat curl
安装 shell 补全hydra install-completions

🔄 脚本迁移:现有wget/curl脚本可直接运行——二进制被调用时的名字会自动推断方言;hydra compat-link还能创建wget/curl兼容入口(详见 crates/hydra-cli/src/compat.rs)。

十三、10 个常用命令速查表

#命令用途
1hydra URL自动探测并行度下载
2hydra -x 8 URL手动指定 8 条连接
3hydra -O f -P dir -y URL控制文件名、目录与自动分类
4hydra -c URL断点续传
5hydra --mirrors URL1 URL2多镜像拼接下载
6hydra --limit-rate 5M URL聚合限速
7hydra --mode queue URL...多 URL 并行/排队
8hydra --inspect / --list-streams URL探测文件与流清晰度
9hydra interactiveTUI 队列管理
10hydra checksum URL/--json摘要查询与机器可读输出

十四、写在最后

到这里,你已经掌握了 hydra CLI 的多线程下载、断点续传与输出控制这三大核心能力。接下来可以深入的方向:

  • docs/man/hydra.1:全部参数的手动页
  • docs/man/hydra-interactive.1:TUI 队列详解
  • scripts/benchmark/:可复现的基准测试脚本
  • crates/hydra-core/src/plan.rs:下载计划与区间调度源码

10 分钟后,愿你的下载队列永远跑满。🚀

【免费下载链接】hydra

A fast, resilient, multi-source file retriever and download engine

项目地址:https://gitcode.com/gh_mirrors/hydra74/hydra
点击查看免费下载

相关推荐

上一篇:Sanity GROQ 标签模板 `groq` 包:从基础用法到类型推断与源码实现
下一篇:QQ空间历史说说完整找回:GetQzonehistory 上手教程

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进