帮助中心 >
  关于独立服务器 >
  如何在Linux命令行中使用Wget下载文件?从基础到高阶的完整实战指南
如何在Linux命令行中使用Wget下载文件?从基础到高阶的完整实战指南
时间 : 2026-11-04 16:18:07
编辑 : Jtti

在Linux服务器的日常运维中,从网络上下载文件、拉取脚本或同步数据是再寻常不过的操作。虽然现在的服务器上大多可以使用`curl`,但Wget依然是大多数运维人员最喜欢的命令行下载工具。

Wget全称是"World Wide Web"与"Get"的结合,它支持HTTP、HTTPS和FTP协议,最大的特点是非交互式——它可以在用户退出系统后于后台继续运行,并且具备极其强大的断点续传和递归下载能力。无论是编写自动化部署脚本,还是从海外源拉取大型依赖包,Wget都是不可或缺的利器。

本文将从最基础的下载命令开始,逐步拆解Wget的核心进阶用法与排错技巧。

基础操作:下载与保存

最简单的用法就是直接跟上目标文件的URL:

wget https://example.com/software.tar.gz

执行后,Wget会将文件下载到当前目录,并在终端显示实时进度条(包含已下载大小、速度、预计剩余时间)。

自定义保存文件名(`-O`)

如果原链接的文件名是一串无意义的字符(如`download.php?id=123`),你可以强制重命名:

wget-O custom_name.tar.gz https://example.com/download.php?id=123

*(注:`-O`后面跟大写字母O。如果是下载多个文件,使用小写`-o`则是将下载日志输出到指定文件,而非显示在屏幕上。)*

断点续传(`-c`)

下载几个G的大型数据集时,网络一旦中断,重新开始会让人崩溃。使用`-c`参数,Wget会检测当前目录下的同名文件,并从中断的地方继续下载:

wget-c https://example.com/large_dataset.zip

这是Wget最核心的救命功能,强烈建议在下载大文件时默认带上这个参数。

运维实战:限速、后台与自动化

1.限制下载速度(`--limit-rate`)

在生产服务器上,如果无限制地使用带宽拉取文件,可能会挤占正常业务流量。使用`--limit-rate`控制速度,单位支持k(KB/s)和m(MB/s):

wget--limit-rate=2m https://example.com/video.mp4

2.后台静默下载(`-b`)

当你需要下载超大文件,且不想一直守着终端窗口时,加上`-b`参数让其转入后台:

wget-b https://example.com/huge_file.iso

Wget会在当前目录创建一个`wget-log`文件,你可以随时用`tail-f wget-log`查看下载进度。

3.忽略SSL证书错误(`--no-check-certificate`)

有时候下载内部测试服务器的文件,由于使用的是自签名证书,Wget会报错并拒绝下载。如果确认目标安全,可以强制跳过证书校验:

wget--no-check-certificate https://internal.test.com/patch.zip

4.设置重试与超时(`--tries`/`--timeout`)

在跨国网络环境(如从国内服务器下载美国源站的文件)时,链路不稳定容易导致连接超时。默认重试次数是20次,你可以自定义时间和次数:

wget--tries=3--timeout=15 https://example.com/file.zip

这表示单次连接超过15秒无响应就判定超时,总共重试3次。

高级进阶:伪装请求与递归镜像

1.自定义请求头(Header)与User-Agent

很多海外站点会拦截默认的Wget请求。你可以伪装成浏览器来绕过封锁:

wget--user-agent="Mozilla/5.0(Windows NT 10.0;Win64;x64)"https://example.com/protected_file.zip

或者携带特定的Referer请求头:

wget--referer=https://google.com https://example.com/file.zip

2.下载需要认证的站点

如果是HTTP基础认证,可以通过参数直接传入账号密码:

wget--http-user=admin--http-password=yourpassword https://example.com/secure/

3.递归镜像整个目录(慎用)

Wget可以像爬虫一样,将目标站点的特定目录全部抓取到本地(常用于离线备份文档):

wget-r-np-k-p https://example.com/docs/

`-r`:递归下载

`-np`:不追溯父目录(避免无限抓取)

`-k`:下载完成后,将HTML里的绝对链接转换为相对链接,方便离线浏览。

`-p`:下载页面所需的所有资源(图片、CSS)。

避坑指南:如何写出稳妥的自动化脚本?

在编写自动化脚本(如Shell或Python)时,直接`wget`是有风险的。如果文件404或者网络断开,脚本可能会挂起。建议加入以下习惯:

1.使用`-q`(安静模式)并判断退出状态码:

if wget-q https://example.com/file.zip;then

echo"下载成功,继续下一步"

else

echo"下载失败,终止脚本"

exit 1

fi

2.配合代理下载:如果服务器处于内网环境,可以用`export http_proxy=...`设置环境变量,或者在wget中使用`-e use_proxy=yes`。

下载速度的最终瓶颈:网络底座与I/O

熟练掌握Wget的参数后,你会发现,决定大文件下载效率的,往往不再是工具本身,而是服务器的底层网络和存储性能。

如果你在Jtti的服务器上使用`wget`从海外源拉取大模型权重或大型数据集,你的下载速度会直接受限于国际出口的带宽质量和丢包率。普通国际线路在晚高峰时,极容易因为丢包导致TCP频繁重传,Wget进度条会卡住甚至直接超时。

Wget虽然只是命令行里的一行指令,但它背后的效率取决于你把它架在什么样的网络基石上。从`-c`的断点续传到`-b`的后台静默,这些技巧能让你的运维工作更加从容;而配合Jtti的高速网络与NVMe磁盘,则能让你的每一次下载都快人一步。访问Jtti官网,查看适合高并发下载与大流量业务的高性能云服务器方案。

售前客服
JTTI-Ellis
JTTI-Amano
JTTI-Luca
JTTI-Benoit
JTTI-Defl
JTTI-Selina
JTTI-Eom
JTTI-Coco
技术支持
JTTI-Noc
标题
电子邮件地址
类型
销售问题
销售问题
系统问题
售后问题
投诉与建议
市场合作
信息
验证码
请先完成环境安全检测
提交