当前位置:首页 > 云服务器 > 正文

Linux服务器上下载文件,常用命令有哪些?

在Linux服务器上下载文件是日常运维和开发工作中常见的操作,掌握多种下载方法及其适用场景能显著提升工作效率,Linux环境下提供了丰富的命令行工具和图形化界面方案,可根据服务器环境、文件大小、网络状况等因素灵活选择,本文将详细介绍主流下载工具的使用方法、参数配置及注意事项,并附上常见问题解答。

基础下载工具:wget与curl

wget和curl是Linux系统中最基础也最常用的下载工具,它们通常预装在大多数发行版中,无需额外安装,wget以非交互式设计见长,适合脚本自动化任务;curl则功能更全面,支持多种协议和交互操作。

wget使用示例

wget的命令结构简单,核心参数包括c(断点续传)、b(后台下载)、r(递归下载)等,下载单个文件并启用断点续传:wget c https://example.com/file.zip,若需下载整个网站(仅限HTML文件),可使用wget r p k https://example.com,其中p下载必要资源,k转换链接用于本地浏览,对于需要认证的下载,可通过user=username password=pass指定凭证,或使用.netrc文件安全存储凭据。

Linux服务器上下载文件,常用命令有哪些? 第1张

curl使用示例

curl的优势在于支持协议广泛(HTTP/HTTPS/FTP/SCP等)和丰富的数据传输选项,下载文件到指定目录并显示进度条:curl L o /path/to/file.zip https://example.com/file.zip,L参数跟随重定向,o指定输出文件名,若需直接显示文件内容(如下载文本文件),可使用curl s https://example.com/data.txt,对于需要POST请求的下载场景,可通过d参数传递数据:curl X POST d "param1=value1" o output.json https://api.example.com/data。

高效下载工具:axel与aria2

当下载大文件或网络带宽有限时,多线程下载工具能显著提升速度,axel和aria2支持多连接加速,适合高延迟或带宽受限的环境。

axel配置

axel默认开启多线程,通过n参数指定线程数(如axel n 10 o file.zip https://example.com/file.zip),其s参数可设置每线程速度上限(单位KB/s),避免占用过多带宽,对于需要认证的站点,可使用U指定UserAgent:axel U "Mozilla/5.0" u username p password file_url。

Linux服务器上下载文件,常用命令有哪些? 第2张

aria2高级配置

aria2功能最为强大,支持多协议(HTTP/HTTPS/FTP/BitTorrent等)和分布式下载,其配置文件~/.aria2/aria2.conf可预设参数,如split=5(分片数量)、maxconnectionperserver=5(单服务器最大连接数),命令行下载示例:aria2c c x 5 s 5 d /target/dir file_url,c启用断点续传,x和s均设置最大连接数,aria2还支持通过JSONRPC接口远程控制,适合集成到自动化系统中。

特定场景下载方案

FTP/SFTP文件传输

对于FTP协议,可使用wget ftp://user:pass@ftp.example.com/file或curl ftp://ftp.example.com/file u user:pass O,SFTP(SSH文件传输协议)更安全,需通过scp或sftp客户端操作:scp user@remote:/path/to/file ./local_dir,或交互式sftp user@remote后使用get file命令。

网页资源抓取

需提取网页中的所有图片或PDF时,可结合wget与正则表达式:wget r A "*.pdf" np nH https://example.com/docs,A指定文件扩展名,np不遍历父目录,nH不创建主机目录,更复杂的场景可使用lynx文本浏览器:lynx dump listonly https://example.com | grep oP 'https.*.(pdf|jpg)' | xargs n1 wget。

P2P与BT下载

Linux服务器可通过transmissiondaemon或rtorrent实现BT下载,安装后,通过Web界面(如Transmission的9091端口)添加种子文件,或使用命令行:transmissionctl a torrent_file.torrent,对于磁力链接,需先安装aria2并使用aria2c d /bt/dir "magnet:..."。

下载工具对比与选择

工具 协议支持 多线程 断点续传 特色功能 适用场景
wget HTTP/HTTPS/FTP 支持 递归下载、镜像站点 简单文件、自动化脚本
curl 多协议 支持 POST/GET、进度显示 API交互、复杂请求
axel HTTP/HTTPS/FTP 支持 速度限制、后台下载 大文件、低带宽环境
aria2 多协议+BT 支持 JSONRPC、分布式下载 高级需求、多任务管理

常见问题与解决方案

  1. 下载中断后如何续传?

    所有推荐工具均支持断点续传,wget使用c参数,curl使用C ,aria2和axel默认启用,若原文件被删除,需重新下载并确保目标文件名与原文件一致。

  2. 如何验证下载文件的完整性?

    下载完成后,需校验文件哈希值,常用命令:sha256sum file.zip(生成哈希),与官方提供的哈希值比对,若文件较大,可使用gpg验证签名:gpg verify file.sig file.zip。

    相关问答FAQs

    Q1: 如何在Linux服务器上限制下载速度?

    A1: 使用wget可通过limitrate=50k限制速度(单位为KB/s);axel使用s 50;aria2在配置文件中设置maxoveralldownloadlimit=50K,若需全局限速,可安装trickle工具:trickle s d 50 wget file_url。

    Q2: 下载过程中出现SSL证书错误如何处理?

    A2: 通常由证书过期或信任链问题导致,临时解决方案:wget使用nocheckcertificate,curl使用k参数,长期建议更新系统CA证书库(如Debian/Ubuntu执行updatecacertificates),或手动导入证书文件(curl cacert /path/to/cert.pem o file https://...)。

    Linux服务器上下载文件,常用命令有哪些? 第3张

0