在 Windows 环境下,常用的命令行下载器工具 :wget 是一个经典的命令行下载工具,支持 HTTP、HTTPS、FTP 等协议。cURL 是另一个非常强大的命令行工具,支持多种协议(包括 HTTP、HTTPS、FTP、SFTP 等)。aria2 是一个非常高效的命令行下载工具,支持 HTTP、HTTPS、FTP、BitTorrent 和 Metalink。axel 是一个轻量级的命令行下载

curlwgetaria2 三个工具的对比,它们主要用于从网络上下载文件,具有各自的优点和特点。以下是它们之间的一些区别,以表格形式呈现:

特性/工具 curl wget aria2
基本功能 下载文件,支持多种协议(HTTP, HTTPS, FTP等) 下载文件,支持HTTP, HTTPS, FTP, 以及更多协议 多协议支持,支持 HTTP(S), FTP, BitTorrent, Metalink 等
并行下载 不支持多线程下载(需要 -Z 或自定义脚本) 不支持多线程下载 支持多线程下载,最大化下载速度
断点续传 支持断点续传 (-C -) 支持断点续传 (-c) 支持断点续传(自动)
协议支持 HTTP, HTTPS, FTP, SCP, SFTP, LDAP等 HTTP, HTTPS, FTP, FTPS, HFTP, SFTP等 HTTP(S), FTP, BitTorrent, Metalink等
文件下载限制 限制较少,支持多种复杂的下载选项 支持限制下载速度、下载数量等 支持非常精细的下载控制和并行下载
支持代理 支持 SOCKS5, HTTP代理等 支持 SOCKS5, HTTP代理等 支持 SOCKS5, HTTP代理等
多重文件下载 需要手动配置和脚本支持 通过 .wgetrc 文件或命令行选项支持 自动支持多种文件并行下载
速度控制 支持速率限制 (--limit-rate) 支持速率限制 (--limit-rate) 支持速率限制,自动优化下载策略
上传支持 支持上传文件(如 FTP、SFTP) 不支持上传 支持上传(如 HTTP POST, FTP等)
进度显示 支持进度条显示 (-# 或 -v) 支持进度条显示 支持详细进度显示(包括下载速度等)
支持HTTP头 支持设置 HTTP 头信息 (-H) 支持设置 HTTP 头信息 (--header) 支持设置 HTTP 头信息
脚本化支持 强大,灵活,支持各种复杂脚本 支持基本的批处理脚本 脚本化支持相对简单,但非常高效
平台支持 Linux, macOS, Windows 等 Linux, macOS, Windows 等 Linux, macOS, Windows 等
安装包大小 较小(大约 1MB) 较小(大约 1-2MB) 较大(约 10MB)
社区支持 大型社区,广泛应用 较小的社区,长期维护 较小的社区,主要用于高效下载

总结:

  1. curl:非常适合用于与网络进行复杂的交互,支持多种协议,功能非常强大,尤其在需要发送 HTTP 请求时非常方便。
  2. wget:最适合做简单的下载任务,尤其是递归下载、自动化批量下载等。它的界面简洁,功能也相对比较直接。
  3. aria2:是一个非常高效的下载工具,支持并行下载和多种协议,适用于需要高速下载以及多个文件并行下载的场景。

如果你需要支持更多协议或灵活的自定义配置,curl 是一个非常好的选择。对于简单的下载任务,wget 是一个非常轻量且方便的工具。而如果你需要进行高效的并行下载,aria2 是最优的选择。


GitHub - aria2/aria2: aria2 is a lightweight multi-protocol & multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.

下载Aria2 - Aria2Tools

aria2c 命令按功能分类的表格:

分类 选项 描述
基本选项 -d, --dir=<dir> 设置下载文件保存的目录
  -o, --out=<file> 设置下载文件的输出文件名
  -i, --input-file=<file> 从指定文件中读取下载任务
  -j, --max-connection-per-server=<num> 设置每个服务器的最大连接数
下载控制 -x, --max-connection-per-server=<num> 设置每个服务器的最大连接数
  -s, --split=<num> 设置文件分片下载的数量
  -k, --min-split-size=<size> 设置每个分片的最小大小
  -u, --user-agent=<string> 设置 HTTP 请求的 User-Agent
  --check-certificate=false 禁用 SSL 证书检查
  -t, --timeout=<seconds> 设置连接和下载的超时时间
下载协议设置 --bt-enable-lpd=true 启用 BitTorrent 的局部发现协议
  --bt-max-peers=<num> 设置 BitTorrent 最大对等节点数
  --bt-tracker=<tracker> 设置 BitTorrent 跟踪器地址
代理设置 --http-proxy=<proxy> 设置 HTTP 代理地址
  --https-proxy=<proxy> 设置 HTTPS 代理地址
  --ftp-proxy=<proxy> 设置 FTP 代理地址
文件管理 --file-allocation=<method> 设置文件分配方法(预分配、按需分配等)
  --continue 启用断点续传
  --auto-file-renaming=false 禁用自动重命名下载文件
  --download-result=<file> 下载完成后将文件列表保存到指定文件
日志与调试 --log=<file> 将日志输出到指定文件
  --log-level=<level> 设置日志输出的详细级别(debug, info, notice, warn, error, critical)
限速与带宽 --max-download-limit=<speed> 设置最大下载速度限制
  --max-upload-limit=<speed> 设置最大上传速度限制
RPC 接口 --rpc-listen-port=<port> 设置 RPC 服务监听的端口
  --rpc-secret=<password> 设置 RPC 密码
  --rpc-user=<user> 设置 RPC 用户名
BitTorrent 选项 --bt-stop-timeout=<seconds> 设置 BitTorrent 停止的超时时间
  --bt-hash-check-seed=true 启用 BitTorrent 种子文件哈希校验
Metalink 设置 --metalink 启用 Metalink 支持
WebSocket 设置 --websocket-protocol 启用 WebSocket 协议支持
下载队列与批量 --max-download-limit 设置最大下载限制
  -n, --max-download-limit 设置最大下载限制
进度与状态显示 -q, --quiet 禁用所有输出
  -v, --verbose 显示详细输出

这只是常用选项的一部分,aria2c 还提供了很多其他的功能和设置选项,适用于各种不同的下载任务配置。您可以使用 aria2c --help 命令获取所有选项的完整列表和说明。

aria2c(1) — aria2 1.37.0 documentation

Aria2 是一款轻量级、支持多种协议的下载工具,广泛用于高速下载。它支持以下几种主要协议:

协议 支持的传输类型 说明
HTTP/HTTPS 文件下载 支持基于 HTTP/HTTPS 的文件下载,支持断点续传、代理、SSL 加密等。
FTP 文件下载 支持通过 FTP 协议进行文件下载,支持断点续传,支持 FTP 的认证功能(如用户名、密码)。
SFTP 文件下载 支持通过 SFTP(安全 FTP)协议进行文件下载,提供加密的文件传输。
BitTorrent P2P 文件下载 支持 BitTorrent 协议,支持通过种子文件或磁力链接下载,支持 DHT(分布式哈希表)和 PEX(对等交换)。
Metalink 多源文件下载 支持 Metalink 协议,允许从多个镜像站点下载文件,并能自动选择最优的源进行下载。
Magnet P2P 文件下载 支持通过 Magnet 链接下载文件,是一种简化的 BitTorrent 下载方式。
HTTP/FTP Proxy 下载时代理支持 支持通过 HTTP 或 FTP 代理进行下载,可以配置 SOCKS5 代理。
HTTPS Proxy 下载时通过 HTTPS 代理 支持通过 HTTPS 代理进行文件下载,保护数据传输的安全性。
UDP 用于下载文件(只在支持的协议中) 在某些配置和协议(如 Metalink)中,Aria2 支持通过 UDP 协议进行文件下载。

补充说明:

  • HTTP/HTTPS: Aria2 支持所有标准的 HTTP/HTTPS 协议,允许使用代理、用户认证等功能。
  • FTP/SFTP: 支持常见的 FTP 协议,同时提供了加密的 SFTP 协议,保证数据传输过程的安全性。
  • BitTorrent: 作为一个流行的 P2P 协议,Aria2 支持种子文件、磁力链接等形式的下载,并且具备断点续传、限速等高级功能。
  • Magnet 链接: 作为一种简化的 BitTorrent 协议,Aria2 也完全支持通过 Magnet 链接下载。
  • Metalink: Metalink 提供了多种下载源,Aria2 会自动选择最佳的下载源进行文件下载。

以上协议的支持,使得 Aria2 成为一个非常灵活且功能强大的下载工具,适用于多种网络环境和文件下载需求。


aria2lftp 两个下载工具的对比,它们各自有不同的特点和优势。以下是它们之间的一些区别,已表格化展示:

特性/工具 aria2 lftp
基本功能 多协议下载工具,支持 HTTP(S), FTP, BitTorrent, Metalink 等 主要用于 FTP/SFTP 下载和管理,支持多种协议
并行下载 支持多线程并行下载,可以最大化带宽使用 支持多线程下载,尤其在 FTP 下载中有优势
协议支持 支持 HTTP(S), FTP, BitTorrent, Metalink 等 支持 FTP, FTPS, SFTP, HTTP(S), HFTP 等
断点续传 支持断点续传(自动支持) 支持断点续传,尤其适用于 FTP 和 SFTP
多重文件下载 支持多个文件的并行下载 支持批量下载,但多线程性能不如 aria2
速度控制 支持速率限制、最大连接数限制等 支持速率限制、最大连接数限制等
上传支持 支持 HTTP POST 上传,FTP 上传等 支持 FTP/SFTP 上传
脚本化支持 脚本化支持较强,适用于自动化下载任务 支持脚本化,特别是与 FTP/SFTP 结合使用
进度显示 支持详细的进度显示,包括下载速度等 支持进度条显示,详细的信息输出
界面 命令行界面,支持输出详细的日志和状态 命令行界面,适合与 shell 配合使用
安装包大小 较大(约 10MB) 较小(大约 1-2MB)
平台支持 Linux, macOS, Windows 等 Linux, macOS, Windows 等
社区支持 相对较小,但专注于下载领域 拥有较强的 FTP/SFTP 用户社区支持
文件管理 文件管理功能有限,主要聚焦于下载 强大的文件管理功能,支持上传、镜像同步等
使用场景 高速并行下载、多协议支持、高效文件下载 主要用于 FTP/SFTP 下载和文件管理

总结:

  1. aria2

    • 优势:非常适合高速并行下载,支持多协议(包括 BitTorrent 和 Metalink)。它特别适用于需要进行多个文件并行下载或高速下载的场景,支持自动断点续传。
    • 缺点:文件管理功能较弱,主要关注下载任务,不支持如 FTP 等高级文件管理功能。
  2. lftp

    • 优势:特别适合用于 FTP、SFTP 下载和文件管理。支持脚本化,可以与 shell 一起使用,适合需要更复杂文件管理和自动化任务的用户。
    • 缺点:对于并行下载的效率和多协议支持不如 aria2,特别是对于 BitTorrent 等协议不太适合。

适用场景:

  • 如果你需要进行高速的并行下载(特别是 HTTP、FTP、BitTorrent 等协议),aria2 是一个非常好的选择。
  • 如果你需要进行 FTP/SFTP 文件管理,并且涉及到复杂的文件上传、下载及同步操作,lftp 更为适合。

Curl:Curl是一个功能强大且广受欢迎的命令行工具,支持多种网络协议,包括HTTP、HTTPS、FTP、SFTP、TFTP、SCP、LDAP、SMTP、POP3等。

curl -o 保存文件名 下载链接

curl - Download


 wget 和 wget2 之间主要区别的表格:

特性 wget wget2
协议支持 HTTP/1.1 HTTP/2
多线程下载 不支持 支持
性能优化 性能较低,尤其在高延迟网络下 性能优化,适合高延迟和不稳定网络
错误恢复 错误处理较简单 提供更好的错误恢复机制
命令行选项 选项丰富,但灵活性有限 增强的命令行选项和功能
依赖性 依赖较少的外部库 依赖更多库,尤其是支持 HTTP/2
开发状态 仍在维护,但更新频率较低 相对较新,积极开发中
使用场景 适合简单下载任务 适合复杂下载需求和现代网络环境
支持的操作系统 跨平台(Linux, Windows, macOS等) 跨平台(Linux, Windows, macOS等)

wget 和 wget2 是用于从网络下载文件的命令行工具。虽然它们的功能相似,但 wget2 是 wget 的一个更新版本,具有一些改进和新特性。以下是它们之间的一些主要区别:

1. 性能和效率

  • wget: 传统的 wget 工具在处理大文件和高延迟网络时可能效率较低。
  • wget2: 设计时考虑了性能优化,支持更高效的下载,尤其是在高延迟或不稳定的网络环境下。

2. HTTP/2 支持

  • wget: 仅支持 HTTP/1.1。
  • wget2: 原生支持 HTTP/2 协议,允许更快的下载速度和更好的资源利用。

3. 多线程下载

  • wget: 不支持多线程下载,所有文件下载都是单线程的。
  • wget2: 支持多线程下载,可以同时下载多个文件,从而提高下载速度。

4. 更好的错误处理

  • wget: 错误处理相对简单,可能在某些情况下无法恢复下载。
  • wget2: 提供了更好的错误恢复机制,能够在网络中断后更有效地恢复下载。

5. 命令行选项和功能

  • wget: 拥有丰富的命令行选项,但某些功能可能不够灵活。
  • wget2: 在命令行选项上进行了改进,增加了一些新功能,使得使用更加灵活。

6. 依赖性

  • wget: 依赖于较少的外部库,通常在大多数 Linux 发行版中预装。
  • wget2: 可能依赖于更多的库,尤其是为了支持 HTTP/2 和多线程特性。

7. 开发和维护

  • wget: 仍在维护,但更新频率较低。
  • wget2: 是一个相对较新的项目,正在积极开发中,添加新特性和修复问题。

wget2 是 wget 的现代化版本,提供了更好的性能、更多的功能和对新技术的支持。如果您需要更高效的下载工具,尤其是在现代网络环境中,wget2 是一个更好的选择。对于简单的下载任务,wget 仍然是一个可靠的工具。

wget 和 wget2 之间主要区别的详细对比表格:

特性 wget wget2
协议支持 仅支持 HTTP/1.1 原生支持 HTTP/2,向后兼容 HTTP/1.1
多线程下载 不支持多线程下载 支持多线程下载,提高下载速度
性能优化 在高延迟和不稳定网络下性能较低 针对高延迟和不稳定网络进行了优化
错误恢复 错误处理较简单 提供更好的错误恢复机制
命令行选项 选项丰富,但灵活性有限 增强的命令行选项和功能,提供更多灵活性
依赖性 依赖较少的外部库 依赖更多库,尤其是支持 HTTP/2 的库
开发状态 仍在维护,但更新频率较低 相对较新,积极开发中,持续更新
使用场景 适合简单下载任务 适合复杂下载需求和现代网络环境
支持的操作系统 跨平台(Linux, Windows, macOS等) 跨平台(Linux, Windows, macOS等)
下载速度 单线程下载,速度受限 多线程和 HTTP/2 支持,速度更快
输出格式 输出信息较为简单 提供更丰富的输出格式选项
安全性 支持 HTTPS,但不支持最新的加密标准 支持最新的加密标准和安全协议
社区支持 拥有广泛的用户基础和文档 社区逐渐增长,文档和支持正在增加

wget2 是 wget 的现代化版本,提供了更好的性能、更多的功能和对新技术的支持。如果您需要更高效的下载工具,尤其是在现代网络环境中,wget2 是一个更好的选择。对于简单的下载任务,wget 仍然是一个可靠的工具。

wget2 是 wget 的现代化版本,支持 HTTP/2 和多线程下载等新特性。在 Windows 上安装 wget2 时,您需要确保满足以下依赖项:

主要依赖项

  1. libcurl:

    • 用于处理网络协议,包括 HTTP/2。
    • 提供多种协议的支持。
  2. libnghttp2:

    • 用于支持 HTTP/2 协议。
    • 处理 HTTP/2 的特性,如多路复用和流控制。
  3. libidn2:

    • 用于国际化域名(IDN)的支持。
    • 处理非 ASCII 字符的域名。
  4. libpsl:

    • 用于公共后缀列表的支持。
    • 处理域名的有效性和安全性。
  5. zlib:

    • 用于数据压缩和解压缩。
    • 提高下载效率,特别是在处理大文件时。
  6. OpenSSL:

    • 用于加密和安全传输。
    • 确保 HTTPS 下载的安全性。

可选依赖项

  • libgcrypt:

    • 用于加密和解密操作,作为 OpenSSL 的替代方案。
  • libunistring:

    • 用于处理 Unicode 字符串的支持。

安装注意事项

在 Windows 上安装 wget2 时,您可以通过以下方式获取依赖项:

  1. 使用预编译的二进制文件:

    • 访问 wget2 的 GitHub Releases 页面,下载适合 Windows 的预编译版本,这些版本通常会包含所需的依赖项。
  2. 使用包管理器:

    • 如果您使用的是 Windows Subsystem for Linux (WSL),可以在 Linux 环境中使用包管理器(如 apt 或 yum)来安装 wget2 及其依赖项。


Wget:Wget是另一个常用的命令行下载工具,支持多种协议,如HTTP、HTTPS、FTP、SFTP等。

wget 下载链接  wget2 下载地址

wget2: GNU Wget2

GitHub - rockdaboot/wget2: The successor of GNU Wget. Contributions preferred at https://gitlab.com/gnuwget/wget2. But accepted here as well 😍

 

GNU Wget 1.21.4 for Windows

github.com/rockdaboot/wget2

Downloads | itefix.net

 

C:\Users\Administrator\Downloads\iwget2_1.2.0_x64_free\bin>wget2 -V
GNU Wget2 2.2.0 - multithreaded metalink/file/website downloader

+digest +https +ssl/openssl +ipv6 +iri +large-file +nls -ntlm -opie +psl -hsts
+iconv +idn2 +zlib -lzma +brotlidec +zstd -bzip2 -lzip +http2 -gpgme

Copyright (C) 2012-2015 Tim Ruehsen
Copyright (C) 2015-2024 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later
<http://www.gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Please send bug reports and questions to <bug-wget@gnu.org>.

C:\Users\Administrator\Downloads\iwget2_1.2.0_x64_free\bin>wget2 -h
GNU Wget2 V2.2.0 - multithreaded metalink/file/website downloader

Usage: wget [options...] <url>...

Startup:
  -a  --append-output       File where messages are appended to, '-' for STDOUT
  -b  --background          Go to background immediately after startup. If no
                              output file is specified via the -o, output is redirected to wget-log
  -B  --base                Base for relative URLs read from input-file
                              or from command line
      --config              Path to initialization file (default: ~/.config/wget/wget2rc)
  -d  --debug               Print debugging messages.(default: off)
  -e  --execute             Wget compatibility option, not needed for Wget
      --force-atom          Treat input file as Atom Feed. (default: off) (NEW!)
      --force-css           Treat input file as CSS. (default: off) (NEW!)
  -F  --force-html          Treat input file as HTML. (default: off)
      --force-metalink      Treat input file as Metalink. (default: off) (NEW!)
      --force-rss           Treat input file as RSS Feed. (default: off) (NEW!)
      --force-sitemap       Treat input file as Sitemap. (default: off) (NEW!)
      --fsync-policy        Use fsync() to wait for data being written to
                              the physical layer. (default: off) (NEW!)
  -h  --help                Print this help.
      --hyperlink           Enable terminal hyperlink support
      --input-encoding      Character encoding of the file contents read with
                              --input-file. (default: local encoding)
  -i  --input-file          File where URLs are read from, - for STDIN.
      --local-db            Read or load databases
  -o  --output-file         File where messages are printed to,
                              '-' for STDOUT.
  -q  --quiet               Print no messages except debugging messages.
                              (default: off)
      --stats-dns           Print DNS stats. (default: off)
                              Additional format supported:
                              --stats-dns=[FORMAT:]FILE
      --stats-ocsp          Print OCSP stats. (default: off)
                              Additional format supported:
                              --stats-ocsp=[FORMAT:]FILE
      --stats-server        Print server stats. (default: off)
                              Additional format supported:
                              --stats-server=[FORMAT:]FILE
      --stats-site          Print site stats. (default: off)
                              Additional format supported:
                              --stats-site=[FORMAT:]FILE
      --stats-tls           Print TLS stats. (default: off)
                              Additional format supported:
                              --stats-tls=[FORMAT:]FILE
      --unlink              Remove files before clobbering. (default: off)
  -v  --verbose             Print more messages. (default: on)
  -V  --version             Display the version of Wget and exit.

Download:
  -A  --accept              Comma-separated list of file name suffixes or
                              patterns.
      --accept-regex        Regex matching accepted URLs.
      --ask-password        Print prompt for password
      --backups             Make backups instead of overwriting/increasing
                              number. (default: 0)
      --bind-address        Bind to sockets to local address.
                              (default: automatic)
      --bind-interface      Bind sockets to the input Network Interface.
                              (default: automatic)
      --body-data           Data to be sent in a request.
      --body-file           File with data to be sent in a request.
      --cache               Enabled using of server cache. (default: on)
      --chunk-size          Download large files in multithreaded chunks.
                              (default: 0 (=off)) Example:
                              wget --chunk-size=1M
      --clobber             Enable file clobbering. (default: on)
      --connect-timeout     Connect timeout in seconds.
      --content-on-error    Save response body even on error status.
                              (default: off)
  -c  --continue            Continue download for given files. (default: off)
      --convert-file-only   Convert only filename part of embedded URLs.
                              (default: off)
  -k  --convert-links       Convert embedded URLs to local URLs.
                              (default: off)
      --cut-file-get-vars   Cut HTTP GET vars from file names. (default: off)
      --cut-url-get-vars    Cut HTTP GET vars from URLs. (default: off)
      --delete-after        Don't save downloaded files. (default: off)
      --dns-cache           Caching of domain name lookups. (default: on)
      --dns-cache-preload   File to be used to preload the DNS cache.
                              Format is like /etc/hosts (IP<whitespace>hostname).
      --dns-timeout         DNS lookup timeout in seconds.
  -D  --domains             Comma-separated list of domains to follow.
      --download-attr       Recognize HTML5 download attributes.
                              'strippath' strips the path to be more secure.
'usepath' uses the path as is (this can be extremely dangerous !).
(default: strippath)
  -X  --exclude-directories
                            Comma-separated list of directories NOT to download.
                              Wildcards are allowed.
      --exclude-domains     Comma-separated list of domains NOT to follow.
      --filter-mime-type    Specify a list of mime types to be saved or ignored
      --filter-urls         Apply the accept and reject filters on the URL
                              before starting a download. (default: off)
      --follow-sitemaps     Scan sitemaps found in robots.txt. (default: on)
      --follow-tags         Scan additional tag/attributes for URLs,
                              e.g. --follow-tags="img/data-500px,img/data-hires
      --force-progress      Force progress bar.
                              (default: off)
      --http2-request-window
                            Max. number of parallel streams per HTTP/2
                              connection. (default: 30)
      --if-modified-since   Do not send If-Modified-Since header in -N mode.
Send preliminary HEAD request instead. This has only
                              effect in -N mode.
      --ignore-case         Ignore case when matching files. (default: off)
      --ignore-length       Ignore content-length header field
                              (default: off)
      --ignore-tags         Ignore tag/attributes for URL scanning,
                              e.g. --ignore-tags="img,a/href
  -I  --include-directories
                            Comma-separated list of directories TO download.
                              Wildcards are allowed.
  -4  --inet4-only          Use IPv4 connections only. (default: off)
  -6  --inet6-only          Use IPv6 connections only. (default: off)
      --iri                 Wget dummy option, you can't switch off
                              international support
      --keep-extension      If file exists: Use pattern 'basename_N.ext'
                              instead of 'filename.N'. (default: off)
  -l  --level               Maximum recursion depth. (default: 5)
      --local-encoding      Character encoding of environment and filenames.
      --max-redirect        Max. number of redirections to follow.
                              (default: 20)
      --max-threads         Max. concurrent download threads.
                              (default: 5) (NEW!)
  -m  --mirror              Turn on mirroring options -r -N -l inf
      --netrc               Load credentials from ~/.netrc if not given.
                              (default: on)
  -O  --output-document     File where downloaded content is written to,
                              '-O'  for STDOUT.
  -p  --page-requisites     Download all necessary files to display a
                              HTML page
      --parent              Ascend above parent directory. (default: on)
      --password            Password for Authentication.
                              (default: empty password)
      --post-data           Data to be sent in a POST request.
      --post-file           File with data to be sent in a POST request.
      --prefer-family       Prefer IPv4 or IPv6. (default: none)
      --progress            Type of progress bar (bar, none).
                              (default: none)
      --proxy               Enable support for *_proxy environment variables.
                              (default: on)
      --random-wait         Wait 0.5 up to 1.5*<--wait> seconds between
                              downloads (per thread). (default: off)
      --read-timeout        Read and write timeout in seconds.
  -r  --recursive           Recursive download. (default: off)
      --regex-type          Regular expression type. Possible types are
                              posix or pcre. (default: posix)
  -R  --reject              Comma-separated list of file name suffixes or
                              patterns.
      --reject-regex        Regex matching rejected URLs.
      --remote-encoding     Character encoding of remote files
                              (if not specified in Content-Type HTTP header
                              or in document itself)
      --report-speed        Output bandwidth as TYPE. TYPE can be bytes
                              or bits. --progress MUST be used.
      --restrict-file-names
                            unix, windows, nocontrol, ascii, lowercase,
                              uppercase, none
      --retry-on-http-error
                            Specify a list of http statuses in which the download will be retried
      --robots              Respect robots.txt standard for recursive
                              downloads. (default: on)
      --save-content-on     Specify a list of response codes that requires it's
                              response body to be saved on error status
  -S  --server-response     Print the server response headers. (default: off)
  -H  --span-hosts          Span hosts that were not given on the
                              command line. (default: off)
      --spider              Enable web spider mode. (default: off)
      --start-pos           Start downloading at zero-based position, 0 = option disabled. (default: 0)
      --strict-comments     A dummy option. Parsing always works non-strict.
      --tcp-fastopen        Enable TCP Fast Open (TFO). (default: on)
  -T  --timeout             General network timeout in seconds.
  -N  --timestamping        Just retrieve younger files than the local ones.
                              (default: off)
  -t  --tries               Number of tries for each download. (default 20)
      --trust-server-names  On redirection use the server's filename.
                              (default: off)
      --use-askpass         Prompt for a user and password using
                              the specified command.
      --use-server-timestamps
                            Set local file's timestamp to server's timestamp.
                              (default: on)
      --user                Username for Authentication.
                              (default: empty username)
  -w  --wait                Wait number of seconds between downloads
                              (per thread). (default: 0)
      --waitretry           Wait up to number of seconds after error
                              (per thread). (default: 10)
      --xattr               Save extended file attributes. (default: off)

HTTP related options:
  -E  --adjust-extension    Append extension to saved file (.html or .css).
                              (default: off)
      --auth-no-challenge   send Basic HTTP Authentication before challenge
  -K  --backup-converted    When converting, keep the original file with
                              a .orig suffix. (default: off)
      --compression         Customize Accept-Encoding with
                              identity, gzip, deflate, xz, lzma, br, bzip2, zstd, lzip
                              and any combination of it
                              no-compression means no Accept-Encoding
      --content-disposition
                            Take filename from Content-Disposition.
                              (default: off)
      --cookie-suffixes     Load public suffixes from file.
                              They prevent 'supercookie' vulnerabilities.
                              See https://publicsuffix.org/ for details.
      --cookies             Enable use of cookies. (default: on)
      --default-http-port   Set default port for HTTP. (default: 80)
      --default-https-port  Set default port for HTTPS. (default: 443)
      --default-page        Default file name. (default: index.html)
      --header              Insert input string as a HTTP header in
                              all requests
      --html-extension      Obsoleted by --adjust-extension
      --http-keep-alive     Keep connection open for further requests.
                              (default: on)
      --http-password       Password for HTTP Authentication.
                              (default: empty password)
      --http-proxy          Set HTTP proxy/proxies, overriding environment
                              variables. Use comma to separate proxies.
      --http-proxy-password
                            Password for HTTP Proxy Authentication.
                              (default: empty password)
      --http-proxy-user     Username for HTTP Proxy Authentication.
                              (default: empty username)
      --http-user           Username for HTTP Authentication.
                              (default: empty username)
      --keep-session-cookies
                            Also save session cookies. (default: off)
      --limit-rate          Limit rate of download per second, 0 = no limit. (default: 0)
      --load-cookies        Load cookies from file.
      --metalink            Follow a metalink file instead of storing it
                              (default: on)
      --method              HTTP method to use for request.
      --netrc-file          Set file for login/password to use instead of
                              ~/.netrc. (default: ~/.netrc)
  -Q  --quota               Download quota, 0 = no quota. (default: 0)
      --referer             Include Referer: url in HTTP request.
                              (default: off)
      --retry-connrefused   Consider "connection refused" a transient error.
                               (default: off)
      --save-cookies        Save cookies to file.
      --save-headers        Save the response headers in front of the response
                              data. (default: off)
  -U  --user-agent          HTTP User Agent string.
                              (default: wget)

HTTPS (SSL/TLS) related options:
      --ca-certificate      File with bundle of PEM CA certificates.
      --ca-directory        Directory with PEM CA certificates.
      --certificate         File with client certificate.
      --certificate-type    Certificate type: PEM or DER (known as ASN1).
                              (default: PEM)
      --check-certificate   Check the server's certificate. (default: on)
      --check-hostname      Check the server's certificate's hostname.
                              (default: on)
      --crl-file            File with PEM CRL certificates.
      --dane                Enable DANE certificate checking.(default: off)
      --egd-file            File to be used as socket for random data from
                              Entropy Gathering Daemon.
      --hpkp                Use HTTP Public Key Pinning (HPKP). (default: on)
      --hpkp-file           Set file for storing HPKP data
                              (default: $XDG_DATA_HOME/wget/.wget-hpkp)
      --hsts                Use HTTP Strict Transport Security (HSTS).
                              (default: on)
      --hsts-file           Set file for HSTS caching. (default: $XDG_DATA_HOME/wget/.wget-hsts)
      --hsts-preload        Use HTTP Strict Transport Security (HSTS).
                              [Not built with libhsts, so not functional]
      --hsts-preload-file   Set name for the HSTS Preload file (DAFSA format).
                              [Not built with libhsts, so not functional]
      --http2               Use HTTP/2 protocol if possible. (default: on)
      --http2-only          Only use HTTP/2 protocol, error if server doesn't offer it. (default: off)
      --https-enforce       Use secure HTTPS instead of HTTP. Legal types are
                              'hard', 'soft' and 'none'.
                              If --https-only is enabled,
                              this option has no effect. (default: none)
      --https-only          Do not follow non-secure URLs. (default: off).
      --https-proxy         Set HTTPS proxy/proxies, overriding environment
                              variables. Use comma to separate proxies.
      --ocsp                Use OCSP server access to verify server's
                              certificate. (default: on)
      --ocsp-date           Check if OCSP response date is too old.
                              (default: on)
      --ocsp-file           Set file for OCSP chaching.
                              (default: $XDG_DATA_HOME/wget/.wget-ocsp)
      --ocsp-nonce          Allow nonce checking when verifying OCSP
                              response. (default: on)
      --ocsp-server         Set OCSP server address.
                              (default: OCSP server given in certificate)
      --ocsp-stapling       Use OCSP stapling to verify the server's
                              certificate. (default: on)
      --private-key         File with private key.
      --private-key-type    Type of the private key (PEM or DER).
                              (default: PEM)
      --random-file         File to be used as source of random data.
      --secure-protocol     Set protocol to be used (auto, SSLv3, TLSv1, TLSv1_1, TLSv1_2, TLS1_3, PFS).
                              (default: auto). Or use GnuTLS priority
                              strings, e.g. NORMAL:-VERS-SSL3.0:-RSA
      --tls-false-start     Enable TLS False Start (needs GnuTLS 3.5+).
                              (default: on)
      --tls-resume          Enable TLS Session Resumption. (default: off)
      --tls-session-file    Set file for TLS Session caching.
                              (default: $XDG_DATA_HOME/wget/.wget-session)

Directory options:
      --cut-dirs            Skip creating given number of directory
                              components. (default: 0)
      --directories         Create hierarchy of directories when retrieving
                              recursively. (default: on)
  -P  --directory-prefix    Set directory prefix.
  -x  --force-directories   Create hierarchy of directories when not
                              retrieving recursively. (default: off)
      --host-directories    Create host directories when retrieving
                              recursively. (default: on)
      --protocol-directories
                            Force creating protocol directories.
                              (default: off)

Plugin options:
      --list-plugins        Lists all the plugins in the plugin search paths.
      --local-plugin        Loads a plugin with a given path.
      --plugin              Load a plugin with a given name.
      --plugin-dirs         Specify alternative directories to look
                              for plugins, separated by ','
      --plugin-help         Print help message for all loaded plugins
      --plugin-opt          Forward an option to a loaded plugin.
                              The option should be in format:
                              <plugin_name>.<option>[=value]


Example boolean option:
 --quiet=no is the same as --no-quiet or --quiet=off or --quiet off
Example string option:
 --user-agent=SpecialAgent/1.3.5 or --user-agent "SpecialAgent/1.3.5"

To reset string options use --[no-]option

 


aria2:aria2是一个强大的命令行下载器,支持多种协议,包括HTTP、HTTPS、FTP、SFTP、BitTorrent、Metalink等。它还支持同时下载多个文件,并具有断点续传功能。

aria2c -o 保存文件名 下载链接

C:\Users\Administrator\Downloads\aria2-1.37.0-win-64bit-build1\aria2-1.37.0-win-64bit-build1>aria2c
Specify at least one URL.
Usage: aria2c [OPTIONS] [URI | MAGNET | TORRENT_FILE | METALINK_FILE]...
See 'aria2c -h'.

C:\Users\Administrator\Downloads\aria2-1.37.0-win-64bit-build1\aria2-1.37.0-win-64bit-build1>aria2c -h
Usage: aria2c [OPTIONS] [URI | MAGNET | TORRENT_FILE | METALINK_FILE]...
Printing options tagged with '#basic'.
See 'aria2c -h#help' to know all available tags.
Options:
 -v, --version                Print the version number and exit.

                              Tags: #basic

 -h, --help[=TAG|KEYWORD]     Print usage and exit.
                              The help messages are classified with tags. A tag
                              starts with "#". For example, type "--help=#http"
                              to get the usage for the options tagged with
                              "#http". If non-tag word is given, print the usage
                              for the options whose name includes that word.

                              Possible Values: #basic, #advanced, #http, #https, #ftp, #metalink, #bittorrent, #cookie, #hook, #file, #rpc, #checksum, #experimental, #deprecated, #help, #all
                              Default: #basic
                              Tags: #basic, #help

 -l, --log=LOG                The file name of the log file. If '-' is
                              specified, log is written to stdout.

                              Possible Values: /path/to/file, -
                              Tags: #basic

 -d, --dir=DIR                The directory to store the downloaded file.

                              Possible Values: /path/to/directory
                              Default: C:\Users\Administrator\Downloads\aria2-1.37.0-win-64bit-build1\aria2-1.37.0-win-64bit-build1
                              Tags: #basic, #file

 -o, --out=FILE               The file name of the downloaded file. It is
                              always relative to the directory given in -d
                              option. When the -Z option is used, this option
                              will be ignored.

                              Possible Values: /path/to/file
                              Tags: #basic, #http, #ftp, #file

 -s, --split=N                Download a file using N connections. If more
                              than N URIs are given, first N URIs are used and
                              remaining URLs are used for backup. If less than
                              N URIs are given, those URLs are used more than
                              once so that N connections total are made
                              simultaneously. The number of connections to the
                              same host is restricted by the
                              --max-connection-per-server option. See also the
                              --min-split-size option.

                              Possible Values: 1-*
                              Default: 5
                              Tags: #basic, #http, #ftp

 --file-allocation=METHOD     Specify file allocation method.
                              'none' doesn't pre-allocate file space. 'prealloc'
                              pre-allocates file space before download begins.
                              This may take some time depending on the size of
                              the file.
                              If you are using newer file systems such as ext4
                              (with extents support), btrfs, xfs or NTFS
                              (MinGW build only), 'falloc' is your best
                              choice. It allocates large(few GiB) files
                              almost instantly. Don't use 'falloc' with legacy
                              file systems such as ext3 and FAT32 because it
                              takes almost the same time as 'prealloc' and it
                              blocks aria2 entirely until allocation finishes.
                              'falloc' may not be available if your system
                              doesn't have posix_fallocate() function.
                              'trunc' uses ftruncate() system call or
                              platform-specific counterpart to truncate a file
                              to a specified length.

                              Possible Values: none, prealloc, trunc, falloc
                              Default: prealloc
                              Tags: #basic, #file

 -V, --check-integrity[=true|false] Check file integrity by validating piece
                              hashes or a hash of entire file. This option has
                              effect only in BitTorrent, Metalink downloads
                              with checksums or HTTP(S)/FTP downloads with
                              --checksum option. If piece hashes are provided,
                              this option can detect damaged portions of a file
                              and re-download them. If a hash of entire file is
                              provided, hash check is only done when file has
                              been already download. This is determined by file
                              length. If hash check fails, file is
                              re-downloaded from scratch. If both piece hashes
                              and a hash of entire file are provided, only
                              piece hashes are used.

                              Possible Values: true, false
                              Default: false
                              Tags: #basic, #metalink, #bittorrent, #file, #checksum

 -c, --continue[=true|false]  Continue downloading a partially downloaded
                              file. Use this option to resume a download
                              started by a web browser or another program
                              which downloads files sequentially from the
                              beginning. Currently this option is only
                              applicable to http(s)/ftp downloads.

                              Possible Values: true, false
                              Default: false
                              Tags: #basic, #http, #ftp

 -i, --input-file=FILE        Downloads URIs found in FILE. You can specify
                              multiple URIs for a single entity: separate
                              URIs on a single line using the TAB character.
                              Reads input from stdin when '-' is specified.
                              Additionally, options can be specified after each
                              line of URI. This optional line must start with
                              one or more white spaces and have one option per
                              single line. See INPUT FILE section of man page
                              for details. See also --deferred-input option.

                              Possible Values: /path/to/file, -
                              Tags: #basic

 -j, --max-concurrent-downloads=N Set maximum number of parallel downloads for
                              every static (HTTP/FTP) URL, torrent and metalink.
                              See also --split and --optimize-concurrent-downloads options.

                              Possible Values: 1-*
                              Default: 5
                              Tags: #basic

 -Z, --force-sequential[=true|false] Fetch URIs in the command-line sequentially
                              and download each URI in a separate session, like
                              the usual command-line download utilities.

                              Possible Values: true, false
                              Default: false
                              Tags: #basic

 -x, --max-connection-per-server=NUM The maximum number of connections to one
                              server for each download.

                              Possible Values: 1-16
                              Default: 1
                              Tags: #basic, #http, #ftp

 -k, --min-split-size=SIZE    aria2 does not split less than 2*SIZE byte range.
                              For example, let's consider downloading 20MiB
                              file. If SIZE is 10M, aria2 can split file into 2
                              range [0-10MiB) and [10MiB-20MiB) and download it
                              using 2 sources(if --split >= 2, of course).
                              If SIZE is 15M, since 2*15M > 20MiB, aria2 does
                              not split file and download it using 1 source.
                              You can append K or M(1K = 1024, 1M = 1024K).

                              Possible Values: 1048576-1073741824
                              Default: 20M
                              Tags: #basic, #http, #ftp

 --ftp-user=USER              Set FTP user. This affects all URLs.

                              Tags: #basic, #ftp

 --ftp-passwd=PASSWD          Set FTP password. This affects all URLs.

                              Tags: #basic, #ftp

 --http-user=USER             Set HTTP user. This affects all URLs.

                              Tags: #basic, #http

 --http-passwd=PASSWD         Set HTTP password. This affects all URLs.

                              Tags: #basic, #http

 --load-cookies=FILE          Load Cookies from FILE using the Firefox3 format
                              and Mozilla/Firefox(1.x/2.x)/Netscape format.

                              Possible Values: /path/to/file
                              Tags: #basic, #http, #cookie

 -S, --show-files[=true|false] Print file listing of .torrent, .meta4 and
                              .metalink file and exit. More detailed
                              information will be listed in case of torrent
                              file.

                              Possible Values: true, false
                              Default: false
                              Tags: #basic, #metalink, #bittorrent

 --max-overall-upload-limit=SPEED Set max overall upload speed in bytes/sec.
                              0 means unrestricted.
                              You can append K or M(1K = 1024, 1M = 1024K).
                              To limit the upload speed per torrent, use
                              --max-upload-limit option.

                              Possible Values: 0-*
                              Default: 0
                              Tags: #basic, #bittorrent

 -u, --max-upload-limit=SPEED Set max upload speed per each torrent in
                              bytes/sec. 0 means unrestricted.
                              You can append K or M(1K = 1024, 1M = 1024K).
                              To limit the overall upload speed, use
                              --max-overall-upload-limit option.

                              Possible Values: 0-*
                              Default: 0
                              Tags: #basic, #bittorrent

 -T, --torrent-file=TORRENT_FILE  The path to the .torrent file.

                              Possible Values: /path/to/file
                              Tags: #basic, #bittorrent

 --listen-port=PORT...        Set TCP port number for BitTorrent downloads.
                              Multiple ports can be specified by using ',',
                              for example: "6881,6885". You can also use '-'
                              to specify a range: "6881-6999". ',' and '-' can
                              be used together.

                              Possible Values: 1024-65535
                              Default: 6881-6999
                              Tags: #basic, #bittorrent

 --enable-dht[=true|false]    Enable IPv4 DHT functionality. It also enables
                              UDP tracker support. If a private flag is set
                              in a torrent, aria2 doesn't use DHT for that
                              download even if ``true`` is given.

                              Possible Values: true, false
                              Default: true
                              Tags: #basic, #bittorrent

 --dht-listen-port=PORT...    Set UDP listening port used by DHT(IPv4, IPv6)
                              and UDP tracker. Multiple ports can be specified
                              by using ',', for example: "6881,6885". You can
                              also use '-' to specify a range: "6881-6999".
                              ',' and '-' can be used together.

                              Possible Values: 1024-65535
                              Default: 6881-6999
                              Tags: #basic, #bittorrent

 --enable-dht6[=true|false]   Enable IPv6 DHT functionality.
                              Use --dht-listen-port option to specify port
                              number to listen on. See also --dht-listen-addr6
                              option.

                              Possible Values: true, false
                              Default: false
                              Tags: #basic, #bittorrent

 --dht-listen-addr6=ADDR      Specify address to bind socket for IPv6 DHT.
                              It should be a global unicast IPv6 address of the
                              host.

                              Tags: #basic, #bittorrent

 -M, --metalink-file=METALINK_FILE The file path to the .meta4 and .metalink
                              file. Reads input from stdin when '-' is
                              specified.

                              Possible Values: /path/to/file, -
                              Tags: #basic, #metalink

URI, MAGNET, TORRENT_FILE, METALINK_FILE:
 You can specify multiple HTTP(S)/FTP URIs. Unless you specify -Z option, all
 URIs must point to the same file or downloading will fail.
 You can also specify arbitrary number of BitTorrent Magnet URIs, torrent/
 metalink files stored in a local drive. Please note that they are always
 treated as a separate download.

 You can specify both torrent file with -T option and URIs. By doing this,
 download a file from both torrent swarm and HTTP/FTP server at the same time,
 while the data from HTTP/FTP are uploaded to the torrent swarm. For single file
 torrents, URI can be a complete URI pointing to the resource or if URI ends
 with '/', 'name' in torrent file is added. For multi-file torrents, 'name' and
 'path' in torrent are added to form a URI for each file.

 Make sure that URI is quoted with single(') or double(") quotation if it
 contains "&" or any characters that have special meaning in shell.

About the number of connections
 Since 1.10.0 release, aria2 uses 1 connection per host by default and has 20MiB
 segment size restriction. So whatever value you specify using -s option, it
 uses 1 connection per host. To make it behave like 1.9.x, use
 --max-connection-per-server=4 --min-split-size=1M.

Refer to man page for more information.

C:\Users\Administrator\Downloads\aria2-1.37.0-win-64bit-build1\aria2-1.37.0-win-64bit-build1>aria2c
至少指定一个 URL。
使用方法:aria2c [选项] [URI | MAGNET | TORRENT_FILE | METALINK_FILE]...
请参阅 'aria2c -h' 获取更多信息。

C:\Users\Administrator\Downloads\aria2-1.37.0-win-64bit-build1\aria2-1.37.0-win-64bit-build1>aria2c -h
使用方法:aria2c [选项] [URI | MAGNET | TORRENT_FILE | METALINK_FILE]...
打印带有 '#basic' 标签的选项。
请参阅 'aria2c -h#help' 查看所有可用标签。
选项:
 -v, --version                打印版本号并退出。

                              标签:#basic

 -h, --help[=TAG|KEYWORD]     打印使用方法并退出。
                              帮助信息按标签分类。标签以 "#" 开头。例如,输入 "--help=#http"
                              可以查看与 "#http" 标签相关的选项的使用方法。如果输入非标签词汇,将打印包含该词汇的选项的使用方法。

                              可选值:#basic, #advanced, #http, #https, #ftp, #metalink, #bittorrent, #cookie, #hook, #file, #rpc, #checksum, #experimental, #deprecated, #help, #all
                              默认值:#basic
                              标签:#basic, #help

 -l, --log=LOG                日志文件的文件名。如果指定 '-',日志将写入标准输出。

                              可选值:/path/to/file, -
                              标签:#basic

 -d, --dir=DIR                存储下载文件的目录。

                              可选值:/path/to/directory
                              默认值:C:\Users\Administrator\Downloads\aria2-1.37.0-win-64bit-build1\aria2-1.37.0-win-64bit-build1
                              标签:#basic, #file

 -o, --out=FILE               下载文件的文件名。该文件名总是相对于 -d 选项中指定的目录。当使用 -Z 选项时,此选项将被忽略。

                              可选值:/path/to/file
                              标签:#basic, #http, #ftp, #file

  • -s, --split=N
    使用 N 个连接下载文件。如果提供的 URI 数量大于 N,则首先使用前 N 个 URI,剩余的 URI 用作备份。如果提供的 URI 数量少于 N,则会重复使用这些 URI,以便总共建立 N 个连接。与同一主机的连接数受到 --max-connection-per-server 选项的限制。另请参见 --min-split-size 选项。

    可能的值:1-*
    默认值:5
    标签:#basic, #http, #ftp


  • --file-allocation=METHOD
    指定文件分配方法。

    • 'none' 不预分配文件空间。
    • 'prealloc' 在下载开始前预分配文件空间。根据文件的大小,这可能需要一些时间。
    • 如果使用较新的文件系统(如支持扩展的 ext4、btrfs、xfs 或 NTFS(仅限 MinGW 构建)),'falloc' 是最佳选择。它几乎能立即为大型文件(几个 GiB)分配空间。
    • 对于旧版文件系统(如 ext3 和 FAT32),不要使用 'falloc',因为它与 'prealloc' 的时间差不多,并且会在分配完成之前完全阻塞 aria2。
    • 如果系统没有 posix_fallocate() 函数,可能无法使用 'falloc'
    • 'trunc' 使用 ftruncate() 系统调用或平台特定的对等方法将文件截断到指定的长度。

    可能的值:none, prealloc, trunc, falloc
    默认值:prealloc
    标签:#basic, #file


  • -V, --check-integrity[=true|false]
    通过验证片段哈希或整个文件的哈希来检查文件完整性。此选项仅在以下情况下有效:

    • BitTorrent、Metalink 下载(带有校验和)
    • HTTP(S)/FTP 下载,且使用了 --checksum 选项。
      如果提供了片段哈希,此选项可以检测文件损坏的部分并重新下载它们。如果提供了整个文件的哈希,则仅在文件已下载后进行哈希检查,这由文件长度决定。如果哈希检查失败,文件将从头开始重新下载。如果同时提供了片段哈希和整个文件的哈希,则仅使用片段哈希。

    可能的值:true, false
    默认值:false
    标签:#basic, #metalink, #bittorrent, #file, #checksum


  • -c, --continue[=true|false]
    继续下载部分下载的文件。使用此选项可以恢复从 web 浏览器或其他程序开始的下载,这些程序按顺序从开始处下载文件。当前,此选项仅适用于 HTTP(S)/FTP 下载。

    可能的值:true, false
    默认值:false
    标签:#basic, #http, #ftp

 


  1. axel:axel是一个多线程命令行下载工具,支持多种协议,包括HTTP、HTTPS、FTP等。它可以同时分割文件并使用多个连接进行加速下载。

    Copy Code
    axel -o 保存文件名 下载链接

  1. lftp:lftp是一个功能强大的命令行文件传输程序,支持FTP、HTTP、HTTPS、SFTP、BitTorrent等协议。它具有多线程下载、断点续传、FTP镜像等功能。

    Copy Code
    lftp -c "get 下载链接 -o 保存文件名"

     

 

 

命令行下载器通常支持多种协议,以下是一些常见的协议:

  1. HTTP(Hypertext Transfer Protocol):用于在Web服务器和客户端之间传输超文本文档的应用层协议。
  2. HTTPS(Hypertext Transfer Protocol Secure):HTTP的安全版本,通过TLS或SSL加密通信内容。
  3. FTP(File Transfer Protocol):用于在网络上传输文件的标准协议,支持上传和下载文件。
  4. SFTP(SSH File Transfer Protocol):通过SSH安全地传输文件的协议,通常用于在远程服务器上安全地传输文件。
  5. SCP(Secure Copy Protocol):通过加密通道在网络上安全地复制文件的协议,通常与SSH一起使用。
  6. SMB/CIFS(Server Message Block / Common Internet File System):用于在计算机之间共享文件、打印机和其他资源的协议,通常用于局域网中。
  7. BitTorrent:用于点对点文件共享的协议,支持高速下载和分布式文件传输。
  8. Magnet链接:BitTorrent网络中用于标识文件的链接格式,通常用于指示特定资源的下载地址。

这些协议涵盖了各种不同的文件传输和下载场景,命令行下载器通常支持其中的一种或多种协议,以便用户能够从各种来源下载文件。

除了上面提到的常见协议之外,还有一些其他的协议可用于文件下载或传输,以下是一些补充:

  1. rsync(Remote Sync):用于在本地和远程系统之间同步文件和目录的协议,通常用于备份和镜像数据。
  2. WebDAV(Web-based Distributed Authoring and Versioning):基于HTTP协议的扩展,用于在Web服务器上创建、修改和管理文档的协议。
  3. NFS(Network File System):用于在网络上共享文件系统的协议,通常用于UNIX和Linux系统之间的文件共享。
  4. LDAP(Lightweight Directory Access Protocol):用于在网络上访问和维护分布式目录信息的协议,通常用于身份验证和授权。
  5. SSHFS(SSH File System):通过SSH安全地挂载远程文件系统的协议,允许在本地访问远程文件系统的内容。
  6. WebSockets:一种在Web浏览器和服务器之间进行全双工通信的协议,可用于实时数据传输和文件下载。
  7. RTSP(Real-Time Streaming Protocol):用于在Internet上传输实时流媒体数据的协议,通常用于音视频流的传输。

这些协议提供了各种不同的功能和用途,适用于不同的场景和需求。命令行下载器可能支持其中的一种或多种协议,以便用户能够根据需要下载或传输文件。

除了之前提到的协议之外,还有一些其他的协议可用于文件下载或传输,以下是更多的协议:

  1. ED2K(eDonkey):用于文件共享的协议,通常与eMule等P2P文件共享软件一起使用。
  2. magnet链接:用于标识BitTorrent网络中文件的链接格式,通常用于通过P2P网络下载文件。
  3. mms(Microsoft Media Server):用于流媒体传输的协议,通常用于Windows Media播放器和Windows Media服务。
  4. RTMP(Real-Time Messaging Protocol):用于实时数据传输的协议,通常用于流媒体直播和视频点播。
  5. rtp(Real-time Transport Protocol):用于实时数据传输的协议,通常用于音频和视频的传输。
  6. RTCP(Real-time Control Protocol):用于实时数据传输的控制协议,通常与RTP一起使用,用于监控和管理实时流媒体会话。
  7. ICE(Interactive Connectivity Establishment):用于在网络上建立对等连接的协议,通常用于实时通信和视频会议。
  8. STUN(Session Traversal Utilities for NAT):用于解决NAT环境下的实时通信问题的协议,通常与ICE一起使用。
  9. TURN(Traversal Using Relays around NAT):用于在NAT环境下建立对等连接的中继协议,通常用于解决NAT穿越问题。
  10. SIP(Session Initiation Protocol):用于建立、修改和终止多媒体会话的协议,通常用于VoIP电话和视频通话。

这些协议覆盖了各种不同的数据传输和通信场景,命令行下载器可能支持其中的一种或多种协议,以满足用户的不同需求。

除了之前提到的协议之外,还有一些其他的协议可用于文件下载或传输,以下是更多的协议:

  1. FTP(File Transfer Protocol):用于在计算机之间传输文件的标准网络协议,支持上传、下载、列出目录等操作。
  2. SFTP(SSH File Transfer Protocol):通过SSH安全地传输文件的协议,提供加密和认证功能,通常用于安全文件传输。
  3. TFTP(Trivial File Transfer Protocol):用于在局域网中传输文件的简单文件传输协议,通常用于设备启动和配置。
  4. SCP(Secure Copy Protocol):通过SSH安全地复制文件的协议,类似于cp命令,但具有加密和认证功能。
  5. HTTP(Hypertext Transfer Protocol):用于在Web服务器和客户端之间传输超文本文档的协议,通常用于下载网页和文件。
  6. HTTPS(Hypertext Transfer Protocol Secure):通过SSL/TLS加密的HTTP协议,用于安全地传输数据,通常用于保护网站和文件下载。
  7. BitTorrent协议:用于通过对等网络进行大文件传输的协议,分为.torrent文件和种子文件两种形式。
  8. IPFS(InterPlanetary File System):基于P2P技术的分布式文件系统协议,用于存储和共享文件,具有去中心化和安全性。
  9. WebRTC(Web Real-Time Communication):用于在Web浏览器之间进行实时通信的协议,支持音频、视频和数据传输。
  10. QUIC(Quick UDP Internet Connections):基于UDP的传输层协议,用于加速Web服务的数据传输,通常用于HTTPS连接。

这些协议覆盖了各种不同的数据传输和通信场景,可以根据具体需求选择合适的协议进行文件下载或传输。

除了之前提到的协议之外,还有一些其他的协议可用于文件下载或传输,以下是更多的协议:

  1. LDAP(Lightweight Directory Access Protocol):用于在网络上访问和维护分布式目录信息的协议,通常用于用户认证和目录服务。
  2. NFS(Network File System):用于在网络上共享文件系统的协议,通常用于Unix和Linux系统之间的文件共享。
  3. AFP(Apple Filing Protocol):用于在Apple计算机之间共享文件和打印机的协议,通常用于Mac OS和macOS系统。
  4. SNMP(Simple Network Management Protocol):用于在网络上监控和管理网络设备的协议,通常用于网络管理和故障排除。
  5. SMTP(Simple Mail Transfer Protocol):用于在网络上传输电子邮件的协议,通常用于发送邮件服务器之间的邮件传输。
  6. IMAP(Internet Message Access Protocol):用于在客户端和邮件服务器之间访问和管理电子邮件的协议,通常用于收取邮件。
  7. POP3(Post Office Protocol version 3):用于在客户端和邮件服务器之间收取电子邮件的协议,通常用于接收邮件。
  8. NNTP(Network News Transfer Protocol):用于在网络上传输新闻组文章的协议,通常用于Usenet新闻组的访问。
  9. WebDAV(Web Distributed Authoring and Versioning):用于在Web服务器上创建、修改和管理文件的协议,通常用于Web内容管理系统和云存储服务。
  10. FTPS(FTP Secure):通过SSL/TLS加密的FTP协议,用于安全地传输文件,类似于HTTPS对HTTP的加密。
  11. FTPS(FTP Secure):通过SSL/TLS加密的FTP协议,用于安全地传输文件,类似于HTTPS对HTTP的加密。
  12. P2P文件传输协议:用于通过对等网络直接传输文件的协议,通常用于点对点文件共享和下载。
  13. SMB/CIFS(Server Message Block/Common Internet File System):用于在局域网中共享文件和打印机的协议,通常用于Windows系统和网络存储设备。

这些协议覆盖了各种不同的数据传输和通信场景,可以根据具体需求选择合适的协议进行文件下载或传输。

除了上面提到的协议之外,还有一些其他的协议可用于文件下载或传输:

  1. RTSP(Real-Time Streaming Protocol):用于在互联网上控制多媒体服务器进行实时数据传输的协议,通常用于流媒体服务。
  2. RTP(Real-time Transport Protocol):用于在IP网络上传输实时数据的协议,通常用于音频和视频流传输。
  3. RSYNC(Remote Sync):用于在计算机之间同步文件和目录的工具,通过SSH或RSH进行数据传输。
  4. RTMP(Real-Time Messaging Protocol):用于在互联网上传输实时音频、视频和数据的协议,通常用于实时通信和流媒体服务。
  5. HLS(HTTP Live Streaming):一种基于HTTP的流媒体协议,用于在互联网上实现实时流媒体传输。
  6. MMS(Microsoft Media Server):微软的流媒体传输协议,用于在Windows平台上传输音频和视频流。
  7. RDP(Remote Desktop Protocol):用于在远程计算机之间传输图形化用户界面和输入设备的协议,通常用于远程桌面控制。
  8. VNC(Virtual Network Computing):一种远程桌面协议,用于在计算机之间共享图形化用户界面。
  9. ICE(Interactive Connectivity Establishment):用于在网络上建立对等连接的协议,通常用于实时通信和多媒体传输。
  10. XMPP(Extensible Messaging and Presence Protocol):一种开放式即时通讯协议,用于在网络上传输即时消息和在线状态。
  11. DNS(Domain Name System):用于将域名解析为IP地址的协议,通常用于在互联网上定位服务器和服务。
  12. IPMI(Intelligent Platform Management Interface):用于管理和监控远程计算机系统的硬件和软件的协议,通常用于服务器管理。

这些协议覆盖了多种不同的数据传输和通信场景,可以根据具体需求选择合适的协议进行文件下载或传输。

除了之前提到的协议之外,还有一些其他的协议可用于文件下载或传输,以下是更多的协议:

  1. SFTP(SSH File Transfer Protocol):基于SSH安全协议的文件传输协议,提供加密的文件传输和访问控制。
  2. SCP(Secure Copy Protocol):基于SSH安全协议的文件复制协议,用于安全地在网络上复制文件和目录。
  3. WebRTC(Web Real-Time Communication):一种在网页浏览器之间直接进行实时通信的协议,可以用于文件传输和视频会议等应用。
  4. ICE(Internet Communications Engine):用于构建分布式应用程序的通信框架,支持多种传输协议和通信模式。
  5. BitTorrent协议:用于在对等网络中分发和下载大型文件的协议,通常用于P2P文件共享和分发。
  6. WebTorrent协议:基于WebRTC和BitTorrent的实时流媒体传输协议,可以在Web浏览器中进行P2P文件共享和流媒体传输。
  7. TFTP(Trivial File Transfer Protocol):一种简单的文件传输协议,通常用于在局域网中进行小文件的快速传输。
  8. WebSocket协议:一种在Web浏览器和服务器之间建立持久连接的协议,可以用于实时通信和数据传输。
  9. TLS(Transport Layer Security):用于在网络上传输数据的安全协议,通常用于加密HTTP通信和保护数据传输的安全性。
  10. HTTP/2协议:一种现代的HTTP协议版本,支持多路复用和头部压缩等特性,提高了Web应用的性能和效率。

这些协议提供了多种不同的传输和通信方式,可以根据具体的需求选择合适的协议进行文件下载或传输。


在 Windows 环境下,常用的命令行下载器工具有很多,以下是一些常见且实用的工具:

1. Wget

wget 是一个经典的命令行下载工具,支持 HTTP、HTTPS、FTP 等协议。它的优势在于非常简单易用,可以用于单个文件的下载、递归下载整个网站等。

  • 基本用法
    bashCopy Code
    wget <URL>
  • 断点续传
    bashCopy Code
    wget -c <URL>
  • 下载整个网站
    bashCopy Code
    wget -r <URL>
  • Windows 安装: 可以通过 GnuWin32 或者通过 chocolatey 包管理工具安装。

2. cURL

cURL 是另一个非常强大的命令行工具,支持多种协议(包括 HTTP、HTTPS、FTP、SFTP 等)。它功能非常灵活,适用于更复杂的下载任务。

  • 基本用法
    bashCopy Code
    curl -O <URL>
  • 断点续传
    bashCopy Code
    curl -C - -O <URL>
  • 下载到特定文件名
    bashCopy Code
    curl -o filename.zip <URL>
  • Windows 安装: cURL 在 Windows 10 或更高版本中默认已经安装,您可以直接在命令行中使用它。

3. aria2

aria2 是一个非常高效的命令行下载工具,支持 HTTP、HTTPS、FTP、BitTorrent 和 Metalink。它的主要特点是支持多线程下载,能够显著提高下载速度。

  • 基本用法
    bashCopy Code
    aria2c <URL>
  • 多文件下载
    bashCopy Code
    aria2c -i file.txt
  • Windows 安装: 通过 aria2 Releases 下载 Windows 版本,或使用 chocolatey 安装。

4. axel

axel 是一个轻量级的命令行下载工具,支持 HTTP 和 FTP 协议。它通过将文件分割成多个部分并行下载,以提高下载速度。

  • 基本用法
    bashCopy Code
    axel <URL>
  • Windows 安装: 目前 axel 主要是为 Linux 系统开发的,Windows 用户可以通过 Cygwin 来安装 axel,或者使用 Windows 子系统 Linux (WSL) 来运行。

5. PowerShell Invoke-WebRequest

Windows PowerShell 提供了一个强大的内建命令 Invoke-WebRequest,用于下载文件。它本质上是一个脚本化的解决方案,适合自动化下载任务。

  • 基本用法
    powershellCopy Code
    Invoke-WebRequest -Uri "<URL>" -OutFile "filename"
  • 断点续传: PowerShell 的 Invoke-WebRequest 并不直接支持断点续传,但可以通过在脚本中处理范围请求来实现。

6. FDM (Free Download Manager)

虽然 FDM 主要是一个图形化下载管理器,但它也提供了命令行工具,适用于自动化下载任务。

7. BitTorrent / qBittorrent (命令行工具)

qBittorrent 提供了命令行工具,允许用户通过 BitTorrent 协议下载文件。你可以用它来处理 .torrent 文件或磁力链接。

  • 基本用法
    bashCopy Code
    qbittorrent-cli <torrent-file>
  • Windows 安装
    你可以从 qBittorrent 官网 下载并安装,命令行工具通常随主程序一起提供。

8. JDownloader (命令行工具)

JDownloader 是一个非常流行的图形化下载工具,它也提供了命令行接口(JDownloader Headless),适合需要自动化下载的用户。

9. Internet Download Manager (IDM) - CLI

虽然 IDM 是一个图形界面的下载管理工具,但它支持通过命令行启动下载任务。

  • 基本用法
    bashCopy Code
    "C:\Program Files (x86)\Internet Download Manager\IDMan.exe" /d <URL> /p "C:\Download\"
  • Windows 安装
    下载地址:IDM 官网

10. uGet (命令行工具)

uGet 是一个开源下载管理器,支持 HTTP、FTP 和 BitTorrent 协议。它本身有图形界面,但也提供了命令行工具来处理下载任务。

  • Windows 安装: 通过 uGet 官网 下载并安装。

 

以上工具是 Windows 上常用的命令行下载工具,每个工具都有其独特的优点:

  • wget 和 curl 适合日常简单的文件下载,且支持 HTTP 和 FTP 协议。
  • aria2 适合需要多线程下载、支持多个协议的高级用户。
  • PowerShell Invoke-WebRequest 适合在 PowerShell 中进行脚本化的自动化下载任务。
  • axel 适合需要多线程的简单下载,但不如 aria2 强大。
  • BitTorrent 和 qBittorrent 适合 BT 下载。

根据您的需求,可以选择最适合的工具。

 

posted @ 2024-01-18 11:33  suv789  阅读(477)  评论(0)    收藏  举报