在折腾多个服务器的时候最头疼的可能就是文件传输。用U盘?太麻烦;用FTP?又觉得配置繁琐。其实只要你会几个命令行工具,服务器之间传文件分分钟就能搞定。今天小编就为大家分享一些服务器之间传输文件命令,还是很简单的。

一、常用的服务器文件传输命令有哪些?
服务器之间传输文件,最主流的还是基于 SSH 的命令工具。
- scp:最常用的安全复制命令,适合点对点传输。
- rsync:适合大批量或定时同步操作,还支持断点续传。
- sftp:交互式操作,适合手动上传下载。
- wget / curl:如果你有公网下载地址,这俩命令一键就能下文件。
而这些命令,基本上大多数 Linux 发行版都自带,连装软件都省了。
二、如何一步步完成传输?(含命令实例)
- 使用 scp传输文件:
scp /path/to/local/file user@remote_ip:/path/to/remote/
举个例子,把本地的 backup.sql 文件传到另一台服务器的 /home/admin/ 目录:
scp backup.sql root@192.168.1.101:/home/admin/
- 从远程服务器下载文件到本地:
scp user@remote_ip:/path/to/remote/file /path/to/local/
- 使用 rsync同步整个目录:
rsync -avz /path/to/local/ user@remote_ip:/path/to/remote/
这个命令不光传得快,还能在你中断后继续传,不怕断线。
- 使用 sftp:
sftp user@remote_ip
登录后输入 put 本地文件 上传,或 get 文件名 下载。
- 使用 wget从公网地址下载:
wget https://example.com/file.tar.gz
三、什么情况适合用哪种命令?
如果是小文件传输,scp 就够用了,简单快捷;要同步多个目录,建议用 rsync,效率更高。如果你不太习惯命令行,也可以试试 sftp 的图形化客户端,比如 WinSCP、FileZilla,拖拽上传超方便。
而 wget 和 curl 更适合“拉取”文件,比如从 GitHub、远程服务器下载文件,不需要登录远程服务器,非常适合部署脚本里使用。
四、小编的经验:文件传输注意事项
小编之前用 scp 传日志文件结果传错目录了,还覆盖了旧数据……所以还是得提醒大家几个注意点:
- 操作前记得用 ls确认一下目标路径是否正确。
- 用 rsync时建议加上--dry-run先模拟一下,防止误操作。
- 有公网传输需求时,尽量使用端口加密传输(比如使用 scp而不是ftp)。
- 文件比较大时,建议开启压缩传输,比如 rsync -z,能节省带宽。
- 如果频繁需要传文件,建议配合 SSH 密钥登录,省去每次输密码的麻烦。
五、常见问题 FAQ
- 传文件速度很慢怎么办?
 可以加上压缩参数,比如rsync -z,或使用内网 IP 传输。
- scp说连接超时?
 可能对方服务器防火墙拦了端口,检查 22 端口是否开放。
- 想自动化传文件怎么办?
 使用 SSH 密钥免密登录 + 定时任务(crontab)就行。
- 两个服务器系统不同,能互传吗?
 可以,Linux 和 macOS/Windows 下的scp、rsync都能通用,只要有 SSH 就行。
- rsync会覆盖目标文件吗?
 默认会覆盖同名文件,可以加- --ignore-existing避免这个问题。

