Featured image of post Linux 和 Windows 系统间文件传输 🔄

Linux 和 Windows 系统间文件传输 🔄

Linux 和 Windows 系统间文件传输 🔄 使用 rz 和 sz 命令轻松在 Linux 和 Windows 系统之间传输文件。本指南&#

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
# 对于较新版本(使用 dnf)
sudo dnf install lrzsz -y

# 对于较旧版本(使用 yum)
sudo yum install lrzsz -y

3. Alpine Linux

1
sudo apk add lrzsz

4. openSUSE

1
sudo zypper install lrzsz

5. Arch Linux

1
sudo pacman -S lrzsz

6. 验证安装

1
2
3
4
5
6
7
# 检查 rz 和 sz 命令是否可用
which rz sz
# 预期输出: /usr/bin/rz 和 /usr/bin/sz

# 查看版本信息
rz --version
sz --version

🖥️ 二、Windows 端配置

rz/sz 需要终端软件支持 ZMODEM 协议。以下是支持的终端软件及其配置方法:

支持的终端软件

  • PuTTY(需要额外配置)
  • Xshell(内置支持,开箱即用)
  • MobaXterm(内置支持,推荐使用)
  • SecureCRT(内置支持)
  • Windows Terminal(配合 WSL 使用)

PuTTY 配置步骤

  1. 下载并安装 PuTTY: https://www.chiark.greenend.org.uk/~sgtatham/putty/

  2. 配置 ZMODEM 支持:

    • 打开 PuTTY,连接到您的 Linux 服务器
    • 转到 Connection > SSH > X11
    • 确保 “Enable X11 forwarding” 已勾选
    • 在"X display location"中填写 localhost:0
  3. 设置默认下载路径:

    • 转到 Connection > SSH > Tunnels
    • 添加新的转发:Source port: 0, Destination: localhost:0

MobaXterm 配置(推荐)

MobaXterm 内置了对 ZMODEM 协议的支持,无需额外配置:

  1. 下载并安装 MobaXterm: https://mobaxterm.mobatek.net/
  2. 创建 SSH 会话连接到 Linux 服务器
  3. 直接使用 rz/sz 命令即可

📤 三、从 Windows 上传文件到 Linux (rz)

rz 命令用于从本地 Windows 计算机上传文件到远程 Linux 服务器。

基本命令

1
2
3
4
5
6
7
8
# 上传文件到当前目录
rz

# 上传文件并指定保存文件名
rz -y newfilename.txt

# 上传多个文件
rz -y

详细步骤

  1. 连接到 Linux 服务器 通过 SSH
  2. 导航到目标目录:
    1
    
    cd /path/to/destination
    
  3. 执行 rz 命令:
    1
    
    rz
    
  4. 选择文件:
    • 终端软件会弹出文件选择对话框
    • 选择要上传的一个或多个文件
  5. 监控传输进度:
    • 传输开始后,终端会显示进度信息
    • 传输完成后,文件会保存在当前目录

高级选项

 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

详细步骤

  1. 在 Linux 服务器上,导航到包含要下载文件的目录
  2. 输入 sz 命令 加上文件名:
    1
    
    sz filename.txt
    
  3. 选择保存位置:
    • 终端软件会自动弹出保存对话框
    • 选择本地保存位置和文件名
  4. 监控传输进度:
    • 传输开始后,终端会显示进度信息
    • 传输完成后,文件会保存在指定位置

高级选项

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 下载整个目录(需要先压缩)
tar czf - directory/ | sz -y directory.tar.gz

# 限制传输速率(KB/s,适用于大文件或慢速连接)
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
# 分卷传输大文件(在 Linux 上分割)
split -b 100M largefile.iso largefile_part.

# 传输所有分卷
sz largefile_part.*

# 在接收端合并分卷(Windows 上)
copy /b largefile_part.* largefile.iso

2. 传输整个目录

1
2
3
4
5
6
# 压缩后传输
tar czf - mydirectory/ | sz -y mydirectory.tar.gz

# 在接收端解压
rz  # 接收 tar.gz 文件
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
# 安装 lrzsz 包
sudo apt-get install lrzsz  # Ubuntu/Debian
sudo yum install lrzsz      # CentOS/RHEL
sudo dnf install lrzsz      # Fedora/CentOS 8+

❌ 问题 2: 传输中断或不稳定

解决方案:

1
2
3
4
5
6
# 使用速率限制提高稳定性
sz -l 512 largefile.iso  # 限制为 512KB/s

# 或者使用分卷传输
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: 权限不足

解决方案:

1
2
3
4
5
# 上传到有写入权限的目录
cd /tmp
rz

# 或者使用 sudo(但需要配置 sudo 允许 rz/sz)

❌ 问题 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
# 从 Windows 到 Linux
scp file.txt user@linux-server:/path/

# 从 Linux 到 Windows
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 会话
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
# 在 Linux 上启动简单 HTTP 服务器
python3 -m http.server 8000

# 然后在 Windows 浏览器中访问
# http://linux-server-ip:8000

5. 共享文件夹/NFS

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 在 Linux 上设置 NFS 共享
sudo apt-get install nfs-kernel-server  # Ubuntu/Debian
sudo yum install nfs-utils             # CentOS/RHEL

# 配置导出目录
sudo nano /etc/exports
# 添加: /path/to/share *(rw,sync,no_subtree_check)

# 重启服务
sudo systemctl restart nfs-server

# 在 Windows 上映射网络驱动器

📊 九、rz/sz 与其他工具对比

特性 rz/sz SCP SFTP Rsync
易用性 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐
速度 ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
断点续传
目录同步
无需额外配置
图形界面支持

🎯 十、最佳实践建议

  1. 小文件优先 📁: rz/sz 最适合中小型文件传输(< 1GB)
  2. 稳定性优先 🌐: 对于不稳定连接,使用速率限制参数 -l
  3. 验证完整性 ✅: 重要文件传输后验证 MD5 校验和
  4. 安全性考虑 🔒: 敏感文件考虑使用加密传输替代方案
  5. 备份重要数据 💾: 重要操作前做好备份
  6. 选择合适的工具 🛠️: 根据文件大小和网络条件选择最佳传输方式
  7. 监控传输过程 👀: 大型文件传输时保持会话活跃,避免超时

传输策略选择指南

  • 小文件 (<100MB): 直接使用 rz/sz
  • 中等文件 (100MB-1GB): 使用 rz/sz 带速率限制或 SCP
  • 大文件 (>1GB): 使用 Rsync 或分卷传输
  • 目录同步: 使用 Rsync 或 SFTP
  • 自动化脚本: 使用 SCP 或 Rsync

💡 提示: 对于日常使用,rz/sz 提供了最快捷方便的文件传输方式,特别是在没有图形界面的服务器环境中。但对于大规模或自动化文件传输,建议考虑 SCP 或 Rsync 等更可靠的方案。

希望本指南帮助您轻松在 Linux 和 Windows 系统之间传输文件!如有其他问题,请参考各终端软件的官方文档。🎉

最后更新于 2025-09-28