Linux服务器上下载文件,常用命令有哪些?
- 云服务器
- 2025-12-19
- 7
在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文件安全存储凭据。

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。

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、分布式下载 | 高级需求、多任务管理 |
常见问题与解决方案
-
下载中断后如何续传?
所有推荐工具均支持断点续传,wget使用c参数,curl使用C ,aria2和axel默认启用,若原文件被删除,需重新下载并确保目标文件名与原文件一致。
-
如何验证下载文件的完整性?
下载完成后,需校验文件哈希值,常用命令: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://...)。
