aria2 中文文档 下载 App

参数谁说了算:命令行、环境变量与配置文件的优先级

三层覆盖关系

同一参数在多处设置时,官方手册写明的覆盖顺序:

层级例子优先级
命令行参数aria2c --all-proxy=…最高
环境变量http_proxy、all_proxy、no_proxy覆盖配置文件
配置文件aria2.conf 里的同名行兜底

以代理为例(官方手册原话的规则):配置文件里写了 http-proxy=…,终端里又 export 了 http_proxy 环境变量——环境变量生效;命令行再给 --http-proxy——命令行生效。

其他参数没有环境变量形态,实际就是"命令行覆盖配置文件"两层。

混合场景的排错思路

行为不符合预期时按这个顺序排查:

  1. 命令行里是不是带了同名参数( alias 里藏参数是常见坑);
  2. 环境变量里有没有 proxy 类变量在悄悄生效;
  3. 配置文件是不是被 --conf-path 或 --no-conf 改道/禁用;
  4. 都没有时才是默认值起作用。

临时排除配置干扰:aria2c --no-conf …;看当前实际生效的全局参数,RPC 开启时调 aria2.getGlobalOption(见 RPC 方法速查)。

单任务参数是第四个维度

-i 清单里写在任务地址下一行的参数(缩进行)只对该任务生效,覆盖全局配置,见批量下载。RPC 的 aria2.changeOption 同理可对单任务覆盖。

运行中改参数

全局参数还可在服务运行中热改:RPC aria2.changeGlobalOption,改完立即生效不用重启。但注意个别参数(如与 netrc 相关的)只在启动时读取,运行中改不生效——以官方手册各参数页的说明为准。

常用默认值对照

拿不准"不写参数是什么行为"时,本站各功能页都附了默认值表,也可以直接查官方手册对应参数的 Default 行。