在 Linux 系统之间传输文件有多种方法,具体选择取决于网络环境、安全性需求、文件大小和操作习惯等因素。以下是常见的 15+ 种方法及简要说明:
一、基于 SSH 协议的工具(加密传输)
scp(Secure Copy)1
2
3
4
5
6
7
8# 上传文件到远程主机
scp local_file user@remote_host:/path/to/destination
# 下载远程文件到本地
scp user@remote_host:/remote/file /local/path
# 递归传输目录(-r)
scp -r local_dir user@remote_host:/remote/path特点:简单直接,但无增量传输功能。
rsync(增量同步)1
2
3
4
5# 同步本地目录到远程(-a 归档模式,-v 显示进度,-z 压缩)
rsync -avz /local/path user@remote_host:/remote/path
# 从远程同步到本地
rsync -avz user@remote_host:/remote/path /local/path特点:高效增量传输,适合大文件或频繁更新的场景。
sftp(SSH File Transfer Protocol)1
2
3
4
5
6sftp user@remote_host
# 交互式命令:
put local_file # 上传文件
get remote_file # 下载文件
lls # 查看本地文件
ls # 查看远程文件特点:交互式操作,适合手动管理文件。
sshfs(挂载远程目录)1
2
3
4# 将远程目录挂载到本地
sshfs user@remote_host:/remote/path /local/mountpoint
# 卸载
fusermount -u /local/mountpoint特点:像操作本地文件一样访问远程文件。
二、基于网络协议的直接传输
nc(netcat) +tar1
2
3
4
5# 接收端监听端口并解压
nc -l -p 1234 | tar xzvf -
# 发送端打包并发送
tar czvf - /local/path | nc remote_host 1234特点:无需 SSH,适合临时快速传输,但无加密。
HTTP 服务器
1
2
3
4
5# 在发送端启动临时 HTTP 服务器(Python3)
python3 -m http.server 8000
# 接收端使用 wget 或 curl 下载
wget http://sender_ip:8000/file特点:快速共享文件,适合内网环境。
curl或wget上传文件1
2# 使用 curl 上传到 HTTP 服务器(需接收端有服务器支持)
curl -F "file=@local_file" http://remote_host/upload特点:依赖接收端的服务支持。
ncftp或lftp(FTP 客户端)1
lftp -e "put local_file; quit" ftp://user:password@remote_host
特点:需配置 FTP 服务,明文传输,不建议敏感数据。
三、共享文件系统
NFS (Network File System)
1
2# 配置 NFS 服务器后,客户端挂载
mount -t nfs remote_host:/shared/path /local/mountpoint特点:适合长期共享,需配置权限。
Samba/CIFS
1
2# 挂载 Windows/Linux 共享目录
mount -t cifs //remote_host/share /local/mountpoint -o user=username特点:跨平台兼容,适合混合环境。
四、其他工具与技巧
tar管道 + SSH1
2# 压缩传输目录到远程并解压
tar czf - /local/dir | ssh user@remote_host "tar xzf - -C /remote/path"特点:灵活处理大目录,无需临时存储。
bbcp(高性能文件拷贝)1
bbcp -v -s 10 local_file user@remote_host:/remote/path
特点:高速传输大文件,需单独安装。
云存储中转(如 AWS S3、MinIO)
1
2
3
4# 上传到云存储
aws s3 cp local_file s3://bucket/path
# 从云存储下载
aws s3 cp s3://bucket/path/remote_file .特点:依赖第三方服务,适合跨地域传输。
邮件附件
1
2# 使用 mutt 发送文件
echo "Body" | mutt -a file_to_send -s "Subject" recipient@example.com特点:适合小文件,依赖邮件服务。
五、图形化工具
FileZilla (SFTP 客户端)
特点:可视化操作,支持拖拽上传。Syncthing (P2P 同步)
特点:去中心化,自动同步多台设备。
选择建议
- 安全性优先:使用
scp/rsync/sftp(基于 SSH)。 - 大文件或增量同步:优先选择
rsync。 - 临时快速共享:HTTP 服务器或
nc。 - 长期共享:NFS/Samba。
- 跨平台传输:Samba 或云存储。