Linux 和 Windows 系统间文件传输 🔄

使用 rz 和 sz 命令轻松在 Linux 和 Windows 系统之间传输文件。本指南涵盖安装、配置、使用技巧以及替代方案,助您实现高效跨平台文件传输!🚀
📖 导航目录
–
🌟 简介
rz 和 sz 是 Linux 系统中常用的文件传输命令,它们使用 ZMODEM 协议 通过终端连接(如 SSH)在本地计算机和远程服务器之间传输文件。这两个命令是 lrzsz 软件包的一部分,非常适合在命令行环境下进行简单的文件交换。✨
主要优势:
- 简单易用 🎯: 只需两个命令即可完成上传下载
- 无需额外配置 ⚡: 大多数 SSH 客户端原生支持
- 跨平台兼容 🔄: 支持多种 Linux 发行版和 Windows 终端
- 无需另开连接 🖥️: 在现有 SSH 会话中直接传输文件
📦 一、安装 lrzsz
在不同 Linux 发行版上安装 lrzsz 包:
1. Debian/Ubuntu 系统
1 2
| sudo apt-get update sudo apt-get install lrzsz -y
|
2. Red Hat/CentOS/Rocky Linux
1 2 3 4 5
| sudo dnf install lrzsz -y
sudo yum install lrzsz -y
|
3. Alpine Linux
4. openSUSE
1
| sudo zypper install lrzsz
|
5. Arch Linux
6. 验证安装
1 2 3 4 5 6 7
| which rz sz
rz --version sz --version
|
🖥️ 二、Windows 端配置
rz/sz 需要终端软件支持 ZMODEM 协议。以下是支持的终端软件及其配置方法:
支持的终端软件
- ✅ PuTTY(需要额外配置)
- ✅ Xshell(内置支持,开箱即用)
- ✅ MobaXterm(内置支持,推荐使用)
- ✅ SecureCRT(内置支持)
- ✅ Windows Terminal(配合 WSL 使用)
PuTTY 配置步骤
-
下载并安装 PuTTY:
https://www.chiark.greenend.org.uk/~sgtatham/putty/
-
配置 ZMODEM 支持:
- 打开 PuTTY,连接到您的 Linux 服务器
- 转到 Connection > SSH > X11
- 确保 “Enable X11 forwarding” 已勾选
- 在"X display location"中填写
localhost:0
-
设置默认下载路径:
- 转到 Connection > SSH > Tunnels
- 添加新的转发:Source port: 0, Destination: localhost:0
MobaXterm 配置(推荐)
MobaXterm 内置了对 ZMODEM 协议的支持,无需额外配置:
- 下载并安装 MobaXterm: https://mobaxterm.mobatek.net/
- 创建 SSH 会话连接到 Linux 服务器
- 直接使用 rz/sz 命令即可
📤 三、从 Windows 上传文件到 Linux (rz)
rz 命令用于从本地 Windows 计算机上传文件到远程 Linux 服务器。
基本命令
1 2 3 4 5 6 7 8
| rz
rz -y newfilename.txt
rz -y
|
详细步骤
- 连接到 Linux 服务器 通过 SSH
- 导航到目标目录:
- 执行 rz 命令:
- 选择文件:
- 终端软件会弹出文件选择对话框
- 选择要上传的一个或多个文件
- 监控传输进度:
- 传输开始后,终端会显示进度信息
- 传输完成后,文件会保存在当前目录
高级选项
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| rz -y
rz -E "*.txt"
rz -v
rz -b
rz -e
|
📥 四、从 Linux 下载文件到 Windows (sz)
sz 命令用于从远程 Linux 服务器下载文件到本地 Windows 计算机。
基本命令
1 2 3 4 5 6 7 8 9 10 11
| sz filename.txt
sz file1.txt file2.jpg file3.zip
sz *.log
sz -y original.txt newname.txt
|
详细步骤
- 在 Linux 服务器上,导航到包含要下载文件的目录
- 输入 sz 命令 加上文件名:
- 选择保存位置:
- 终端软件会自动弹出保存对话框
- 选择本地保存位置和文件名
- 监控传输进度:
- 传输开始后,终端会显示进度信息
- 传输完成后,文件会保存在指定位置
高级选项
1 2 3 4 5 6 7 8 9 10 11
| tar czf - directory/ | sz -y directory.tar.gz
sz -l 1024 largefile.iso
sz -v filename.txt
sz -b image.jpg
|
🔧 五、常用参数说明
| 参数 |
说明 |
示例 |
-y |
覆盖已存在文件 |
sz -y file.txt |
-e |
转义控制字符 |
rz -e |
-E |
强制使用特定扩展名 |
rz -E "*.txt" |
-b |
二进制模式传输 |
sz -b image.jpg |
-v |
显示详细输出 |
rz -v |
-l |
限制传输速率(KB/s) |
sz -l 512 bigfile.iso |
-q |
安静模式,减少输出 |
rz -q |
-c |
发送命令而不是文件 |
高级用法 |
–
💡 六、实用技巧和示例
1. 传输大文件
1 2 3 4 5 6 7 8
| split -b 100M largefile.iso largefile_part.
sz largefile_part.*
copy /b largefile_part.* largefile.iso
|
2. 传输整个目录
1 2 3 4 5 6
| tar czf - mydirectory/ | sz -y mydirectory.tar.gz
rz tar xzf mydirectory.tar.gz
|
3. 自动化传输脚本
1 2 3 4 5 6 7 8
| #!/bin/bash
BACKUP_FILE="backup_$(date +%Y%m%d_%H%M%S).tar.gz" tar czf /tmp/$BACKUP_FILE /important/data/ echo "📦 开始传输备份文件: $BACKUP_FILE" sz /tmp/$BACKUP_FILE rm /tmp/$BACKUP_FILE echo "✅ 备份传输完成!"
|
4. 检查传输完整性
1 2 3 4 5 6
| md5sum bigfile.iso > bigfile.iso.md5 sz bigfile.iso bigfile.iso.md5
md5sum -c bigfile.iso.md5
|
5. 批量传输脚本
1 2 3 4 5
| #!/bin/bash
echo "🖼️ 开始传输图片文件..." sz *.jpg *.png *.gif echo "✅ 图片传输完成!"
|
–
⚠️ 七、常见问题与解决方案
❌ 问题 1: rz/sz 命令未找到
解决方案:
1 2 3 4
| sudo apt-get install lrzsz sudo yum install lrzsz sudo dnf install lrzsz
|
❌ 问题 2: 传输中断或不稳定
解决方案:
1 2 3 4 5 6
| sz -l 512 largefile.iso
split -b 50M largefile.iso largefile_part. sz largefile_part*
|
❌ 问题 3: 中文文件名乱码
解决方案:
1 2 3 4 5 6
| export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8
sz 中文文件.txt
|
❌ 问题 4: 权限不足
解决方案:
❌ 问题 5: 终端软件不支持 ZMODEM
解决方案:
- 换用支持 ZMODEM 的终端软件(如 MobaXterm、Xshell)
- 或者使用替代传输方法(SCP、SFTP)
❌ 问题 6: 防火墙阻止传输
解决方案:
- 检查防火墙设置,确保 ZMODEM 端口未被阻止
- 或者使用替代传输方法(SCP 使用 SSH 端口)
🔄 八、替代方案
虽然 rz/sz 很方便,但还有其他文件传输方法可供选择:
1. SCP (Secure Copy)
1 2 3 4 5 6 7 8
| scp file.txt user@linux-server:/path/
scp user@linux-server:/path/file.txt .
scp -r directory/ user@linux-server:/path/
|
2. SFTP (SSH File Transfer Protocol)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| sftp user@linux-server
put localfile.txt
get remotefile.txt
ls
exit
|
3. Rsync (高效同步)
1 2 3 4 5 6 7 8
| rsync -avz /local/path/ user@linux-server:/remote/path/
rsync -avz user@linux-server:/remote/path/ /local/path/
rsync -avz --progress user@linux-server:/remote/path/ /local/path/
|
4. HTTP 下载
1 2 3 4 5
| python3 -m http.server 8000
|
5. 共享文件夹/NFS
1 2 3 4 5 6 7 8 9 10 11 12
| sudo apt-get install nfs-kernel-server sudo yum install nfs-utils
sudo nano /etc/exports
sudo systemctl restart nfs-server
|
–
📊 九、rz/sz 与其他工具对比
| 特性 |
rz/sz |
SCP |
SFTP |
Rsync |
| 易用性 |
⭐⭐⭐⭐⭐ |
⭐⭐⭐⭐ |
⭐⭐⭐ |
⭐⭐⭐ |
| 速度 |
⭐⭐⭐ |
⭐⭐⭐⭐ |
⭐⭐⭐⭐ |
⭐⭐⭐⭐⭐ |
| 断点续传 |
✅ |
❌ |
✅ |
✅ |
| 目录同步 |
❌ |
❌ |
✅ |
✅ |
| 无需额外配置 |
✅ |
❌ |
❌ |
❌ |
| 图形界面支持 |
❌ |
✅ |
✅ |
❌ |
🎯 十、最佳实践建议
- 小文件优先 📁: rz/sz 最适合中小型文件传输(< 1GB)
- 稳定性优先 🌐: 对于不稳定连接,使用速率限制参数
-l
- 验证完整性 ✅: 重要文件传输后验证 MD5 校验和
- 安全性考虑 🔒: 敏感文件考虑使用加密传输替代方案
- 备份重要数据 💾: 重要操作前做好备份
- 选择合适的工具 🛠️: 根据文件大小和网络条件选择最佳传输方式
- 监控传输过程 👀: 大型文件传输时保持会话活跃,避免超时
传输策略选择指南
- 小文件 (<100MB): 直接使用 rz/sz
- 中等文件 (100MB-1GB): 使用 rz/sz 带速率限制或 SCP
- 大文件 (>1GB): 使用 Rsync 或分卷传输
- 目录同步: 使用 Rsync 或 SFTP
- 自动化脚本: 使用 SCP 或 Rsync
💡 提示: 对于日常使用,rz/sz 提供了最快捷方便的文件传输方式,特别是在没有图形界面的服务器环境中。但对于大规模或自动化文件传输,建议考虑 SCP 或 Rsync 等更可靠的方案。
希望本指南帮助您轻松在 Linux 和 Windows 系统之间传输文件!如有其他问题,请参考各终端软件的官方文档。🎉
Linux 和 Windows 系统间文件传输 🔄