Linux 服务器文件下载的 5 种方法 | SCP、SFTP、rsync 实战教程
title = “Linux 服务器文件下载的 5 种方法 | SCP、SFTP、rsync 实战教程” description = “详细介绍从 Linux 服务器下载文件的 5 种常用方法,包括 SCP 命令、SFTP 交互式传输、rsync 增量同步、SecureCRT 可视化操作以及 wget/curl 远程下载,附完整命令示例与场景对比,助你快速选择最适合的文件传输方案。” keywords = “Linux 服务器下载文件, SCP 命令下载, SFTP 文件传输, rsync 同步文件, Linux 远程文件下载” slug = “linux-server-file-download-methods” categories = [“编程开发”] tags = [“Linux”,“SCP”,“SFTP”,“rsync”,“文件传输”,“远程下载”,“服务器运维”] date = “2026-05-25” lastmod = “2026-05-25” summary = "" draft = false type = “posts” weight = 0 include_toc = false show_comments = true
Linux 服务器文件下载的 5 种方法:SCP、SFTP、rsync 实战教程
在日常服务器运维和开发过程中,从 Linux 服务器下载文件是一项非常高频的操作。不管是拉取日志排查问题,还是备份数据库文件,选择一种高效稳定的文件传输方式都至关重要。
这篇文章将系统地介绍 5 种从 Linux 服务器下载文件的主流方法,从命令行工具到可视化客户端,逐一讲解它们的适用场景和具体用法,帮你在实际工作中做出最优选择。
方法一:使用 SCP 命令下载文件
SCP(Secure Copy Protocol)是基于 SSH 协议的文件传输命令,几乎所有 Linux 发行版都自带,无需额外安装。它的最大优势是简单直接,一行命令就能完成文件传输。
下载单个文件
在本地终端执行以下命令,将服务器上的文件下载到本地指定目录:
scp username@服务器IP:/远程文件路径 /本地保存路径举个例子,把服务器上的 /var/log/app.log 下载到本地桌面:
scp root@192.168.1.100:/var/log/app.log ~/Desktop/下载整个目录
如果需要下载一整个文件夹,加上 -r 参数即可递归复制:
scp -r username@服务器IP:/远程目录路径 /本地保存路径指定 SSH 端口
如果服务器的 SSH 端口不是默认的 22,需要用 -P 参数指定端口号:
scp -P 2222 root@192.168.1.100:/var/log/app.log ~/Desktop/小提示:SCP 适合临时性、一次性的文件传输场景。如果你只是想快速拉一个文件下来看看,SCP 是最省事的选择。
方法二:使用 SFTP 交互式下载文件
SFTP(SSH File Transfer Protocol)同样基于 SSH 协议,但它提供了一个交互式的文件管理环境,可以像在本地文件系统中一样浏览远程目录、切换路径,然后选择性地下载文件。
连接服务器
sftp username@服务器IP如果端口不是 22,使用 -P 参数:
sftp -P 2222 username@服务器IP浏览远程目录并下载
成功连接后,你会进入 SFTP 的交互式命令行。以下是常用操作命令:
| 命令 | 说明 |
|---|---|
ls |
查看远程当前目录下的文件 |
cd /path |
切换远程目录 |
lcd /local/path |
切换本地目录(决定文件下载到哪里) |
get 文件名 |
下载单个文件到本地当前目录 |
mget *.log |
批量下载匹配的文件 |
exit |
退出 SFTP 连接 |
实际操作示例
sftp root@192.168.1.100
## 进入 SFTP 交互环境后
cd /var/log
lcd ~/Desktop
get app.log
exit上面这段操作的含义是:先进入服务器的 /var/log 目录,然后将本地下载路径切换到桌面,最后把 app.log 下载下来。
适用场景:当你不太确定文件的具体路径,需要先在服务器上翻找一下的时候,SFTP 的交互模式会比 SCP 方便很多。
方法三:使用 rsync 增量同步下载
rsync 是 Linux 下非常强大的文件同步工具,它最核心的特性是增量传输——只传输发生变化的部分,而不是每次都全量复制。这在需要定期同步大量文件的场景下,效率远远高于 SCP。
基本下载命令
rsync -avz username@服务器IP:/远程路径 /本地路径参数说明:
-a:归档模式,保留文件权限、时间戳等属性-v:显示详细传输过程-z:传输时压缩数据,节省带宽
指定 SSH 端口
rsync -avz -e "ssh -p 2222" root@192.168.1.100:/var/log/ ~/backup/logs/排除特定文件
如果某些文件不需要同步,可以用 --exclude 参数排除:
rsync -avz --exclude="*.tmp" root@192.168.1.100:/data/ ~/backup/data/断点续传
rsync 天然支持断点续传。如果传输中途网络断了,重新执行同样的命令,它会自动跳过已经传输完成的部分,从中断点继续。
适用场景:定期备份服务器日志、同步项目文件、大文件传输。如果你需要频繁从服务器拉文件,rsync 应该是你的首选。
方法四:使用 SecureCRT 等可视化工具下载
如果你更习惯图形化操作,不想记命令,可以使用 SSH 客户端工具来完成文件下载。目前主流的工具有:
- SecureCRT:老牌 SSH 客户端,企业用户较多
- Xshell + Xftp:Xshell 负责终端连接,Xftp 负责文件传输,配合使用体验很好
- MobaXterm:集成了终端、文件管理、X11 转发等功能,免费版即可满足日常使用
- Termius:跨平台支持 macOS、Windows、Linux、iOS、Android,界面现代美观
以 SecureCRT 为例
- 打开 SecureCRT,通过 SSH 连接到目标服务器
- 连接成功后,在菜单栏找到 Transfer 或者 SFTP 选项
- 打开 SFTP 标签页,使用
get命令下载文件,或者直接在文件浏览器中拖拽下载
以 MobaXterm 为例
- 新建 SSH 会话并连接服务器
- 左侧会自动展示服务器的文件目录树
- 直接选中文件,右键点击 Download 即可下载到本地
适用场景:不熟悉命令行的小伙伴,或者需要频繁在本地和服务器之间拖拽文件的场景。
方法五:使用 wget 或 curl 远程下载
如果文件已经通过 HTTP/HTTPS 服务暴露出来了(比如 Nginx 开放了目录浏览),你也可以在本地用 wget 或 curl 直接下载。
wget 下载
wget http://服务器IP:端口/文件路径下载并重命名:
wget -O 本地文件名 http://服务器IP:端口/文件路径curl 下载
curl -O http://服务器IP:端口/文件路径下载并指定保存文件名:
curl -o 本地文件名 http://服务器IP:端口/文件路径注意:这种方式需要服务器上先启动一个 HTTP 服务(比如 Nginx、Apache 或者 Python 的 SimpleHTTPServer),把文件暴露出来。如果只是临时用一下,可以在服务器上快速启动一个 HTTP 服务:
## 在需要下载的文件所在目录执行
python3 -m http.server 8080然后在本地用 wget 或 curl 访问 http://服务器IP:8080/文件名 即可下载。
适用场景:文件已经通过 Web 服务暴露出来,或者需要临时快速共享文件给多人下载。
五种方法对比一览
| 方法 | 是否需要 SSH | 是否支持断点续传 | 增量传输 | 适用场景 |
|---|---|---|---|---|
| SCP | 是 | 否 | 否 | 临时下载单个或少量文件 |
| SFTP | 是 | 部分支持 | 否 | 需要交互式浏览远程目录 |
| rsync | 是 | 是 | 是 | 定期同步、大文件、批量传输 |
| SecureCRT 等工具 | 是 | 取决于工具 | 否 | 偏好图形化操作 |
| wget / curl | 否(需 HTTP) | wget 支持 | 否 | 文件已通过 Web 服务暴露 |
常见问题
Q1:SCP 和 SFTP 有什么区别?该用哪个?
SCP 更适合"我知道文件在哪,直接拉下来"的场景,一行命令搞定;SFTP 更适合"我需要先看看服务器上有哪些文件,然后选择性下载"的场景。两者底层都基于 SSH,安全性没有区别。
Q2:下载大文件时经常中断怎么办?
推荐使用 rsync,它天然支持断点续传和增量传输。即使网络中途断了,重新执行同样的命令就能从断点继续,不用从头开始。
Q3:Permission denied 怎么解决?
这通常是因为当前用户对目标文件没有读取权限。可以先 SSH 登录服务器,用 chmod 修改文件权限,或者把文件复制到 /tmp 目录后再下载:
## 在服务器上执行
cp /var/log/protected.log /tmp/
chmod 644 /tmp/protected.log然后在本地下载 /tmp/protected.log 即可。
Q4:如何通过跳板机下载文件?
很多企业环境需要先登录跳板机才能访问目标服务器。可以使用 SCP 的 -o 参数配合 ProxyJump:
scp -o ProxyJump=user@跳板机IP user@目标服务器IP:/文件路径 /本地路径或者在 ~/.ssh/config 中配置好跳板机信息,之后就可以像直连一样使用 SCP 和 SFTP。
Q5:下载速度太慢怎么优化?
- 使用 rsync 的
-z参数开启压缩传输 - 如果是大量小文件,先在服务器上打包成 tar.gz 再下载
- 检查服务器和本地的网络带宽是否存在瓶颈
- 使用
scp -C开启 SSH 压缩
总结
从 Linux 服务器下载文件并不复杂,关键是根据实际场景选择合适的工具:
- 快速下载单个文件 → 用 SCP,一行命令搞定
- 需要浏览远程目录再下载 → 用 SFTP 交互模式
- 定期同步或大文件传输 → 用 rsync,省时省带宽
- 偏好图形界面 → 用 SecureCRT、MobaXterm 等可视化工具
- 文件已通过 HTTP 暴露 → 用 wget 或 curl
掌握这几种方法,基本可以覆盖日常工作中 99% 的文件下载需求。建议大家根据自己的使用习惯,重点掌握其中 2-3 种,形成自己的工作流。
如果大家对 Linux 服务器文件下载还有哪些疑问,或者有其他好用的工具推荐,欢迎在评论区交流讨论~~~
版权声明
未经授权,禁止转载本文章。
如需转载请保留原文链接并注明出处。即视为默认获得授权。
未保留原文链接未注明出处或删除链接将视为侵权,必追究法律责任!
本文原文链接: https://fiveyoboy.com/articles/linux-server-file-download-methods/
备用原文链接: https://blog.fiveyoboy.com/articles/linux-server-file-download-methods/