在现代服务器管理和运维工作中,高效地进行文件传输是一项基础而关键的需求,对于习惯使用命令行界面的 CentOS 用户而言,lrzsz 工具包提供了一个极为便捷的解决方案,它允许用户通过支持 ZMODEM 协议的终端工具(如 Xshell、SecureCRT、MobaXterm 等)直接在本地电脑和远程服务器之间上传和下载文件,无需额外配置 FTP 或 SFTP 服务,极大地简化了操作流程,本文将详细介绍在 CentOS 系统中安装、配置及使用 lrzsz 的完整过程。
什么是 lrzsz?
lrzsz 是一个在 Unix/Linux 系统下使用的通信软件包,它包含了两个核心程序:
rz(Receive ZMODEM):用于从本地终端向远程服务器上传文件,当在服务器上执行rz命令后,终端会弹出一个文件选择窗口,用户选择文件后即可开始上传。sz(Send ZMODEM):用于从远程服务器向本地终端下载文件,执行sz <文件名>命令后,终端会提示用户选择保存位置,从而将文件下载到本地。
该工具基于 ZMODEM 协议,这是一种具备错误检测和自动重传机制的文件传输协议,相比早期的 XMODEM/YMODEM 协议,它在稳定性和传输效率上都有显著提升。
安装前准备
在开始安装之前,建议进行以下两项检查,以确保过程顺利。
检查系统版本与包管理器
CentOS 的不同版本使用了不同的默认包管理器,了解您的系统版本有助于选择正确的安装命令。
- CentOS 7 及更早版本:使用
yum作为包管理器。 - CentOS 8 / Stream / Rocky Linux 8 / AlmaLinux 8 及更新版本:使用
dnf作为包管理器(dnf是yum的后继者,命令语法高度兼容)。
您可以通过以下命令查看系统版本:
cat /etc/centos-release
检查是否已安装
为避免重复安装,可以先检查系统中是否已经存在 lrzsz。
rpm -qa | grep lrzsz
如果命令输出了 lrzsz 的版本信息(lrzsz-0.12.20-36.el7.x86_64),则表示已安装,您可以跳过安装步骤,如果没有任何输出,则需要继续进行安装。
确保拥有管理员权限
安装软件包需要 root 权限,请确保您使用的是 root 用户,或者普通用户已配置好 sudo 权限。
安装 lrzsz
lrzsz 包已包含在 CentOS 的默认软件源(Repository)中,因此安装过程非常简单。
使用 yum / dnf 安装(推荐)
这是最直接、最推荐的在线安装方式。
如果您是 CentOS 7 用户,请使用 yum:
sudo yum install lrzsz -y
如果您是 CentOS 8 及以上版本用户,请使用 dnf:
sudo dnf install lrzsz -y
命令解析:
sudo:以管理员权限执行命令。yum/dnf:包管理器。install:安装软件包的指令。lrzsz:要安装的软件包名称。-y:自动回答所有提示为“是”,避免在安装过程中需手动确认。
安装完成后,系统会显示“Complete!”或类似的完成信息。
使用 RPM 包离线安装
在某些无法连接互联网的隔离环境中,可以手动下载 RPM 包进行安装。
-
下载 RPM 包: 在一台可以联网的、系统版本相同的 CentOS 机器上,或访问官方镜像站(如
vault.centos.org)或第三方 RPM 资源网站(如pkgs.org),下载lrzsz的 RPM 包,使用yum仅下载不安装:sudo yum install --downloadonly --downloaddir=/tmp lrzsz
这会将 RPM 包及其依赖下载到
/tmp目录。 -
传输 RPM 包到目标服务器: 使用 U 盘或其他方式将下载好的
.rpm文件复制到离线的目标服务器上。 -
执行安装: 在目标服务器上,使用
rpm命令进行安装。sudo rpm -ivh lrzsz-*.rpm
-i:表示安装。-v:显示详细信息。-h:显示安装进度条。
基本使用方法
安装成功后,您就可以在支持 ZMODEM 协议的终端工具中使用 rz 和 sz 命令了。
上传文件 (rz)
- 通过终端工具登录到您的 CentOS 服务器。
- 使用
cd命令切换到您希望接收文件的目录。 - 在终端中输入
rz命令并回车:rz
- 您的本地终端客户端(如 Xshell)会自动弹出一个文件选择对话框,浏览并选择您要上传的文件,点击“确定”即可开始上传,传输进度会在终端中显示。
下载文件 (sz)
- 同样,先登录到服务器。
- 使用
cd命令切换到包含您要下载文件的目录。 - 在终端中输入
sz命令,后跟文件名(支持通配符):sz filename.txt # 或者下载多个文件 sz *.log
- 执行后,您的本地终端客户端会弹出一个“保存文件”对话框,选择保存路径后,文件便会开始下载。
为了更清晰地对比,可以参考下表:
| 功能 | 命令 | 操作方向 | 触发方式 | 适用场景 |
|---|---|---|---|---|
| 上传 | rz |
本地 → 服务器 | 服务器端执行,本地选择文件 | 快速将配置文件、脚本等上传到服务器 |
| 下载 | sz <file> |
服务器 → 本地 | 服务器端执行,指定文件名 | 从服务器获取日志、备份文件等 |
相关问答 FAQs
除了 lrzsz,还有哪些其他常用的在 CentOS 上进行文件传输的方式?
解答: 当然有,lrzsz 以其便捷性著称,但根据不同场景,还有多种选择:
scp(Secure Copy):基于 SSH 协议,命令简单,适合单次、快速的文件或目录复制。scp user@remote:/path/to/file /local/path。sftp(SSH File Transfer Protocol):同样基于 SSH,提供了一个交互式的文件传输会话,可以像操作本地文件一样浏览、上传、下载远程服务器上的文件,功能比scp更丰富。rsync:一个非常强大的文件同步工具,支持增量传输,即只传输有变化的部分,非常适合用于数据备份和大规模镜像同步,它也能通过 SSH 隧道进行安全传输。- 搭建 FTP/SFTP 服务:对于需要频繁、多用户进行文件交换的场景,可以在服务器上配置
vsftpd(FTP)或直接使用 OpenSSH 提供的内置 SFTP 功能。
为什么我执行了 rz 或 sz 命令,但是终端没有任何反应,或者只是开始了一堆乱码?
解答: 这个问题通常由以下两个原因导致:
- 终端客户端不支持 ZMODEM 协议:
lrzsz的工作原理依赖于您的终端仿真软件(如 PuTTY、Xshell、SecureCRT 等)能够理解和响应 ZMODEM 协议的指令,一些基础的终端(如 Windows 自带的 CMD 或 PowerShell 配合 OpenSSH,或 PuTTY 的默认配置)可能不支持此协议,请确认您正在使用支持 ZMODEM 的终端工具,并检查其设置中是否已启用 ZMODEM 上传/下载功能。 - 网络或连接问题:不稳定的网络连接可能导致 ZMODEM 协议握手失败,从而使命令卡住或显示乱码,可以尝试重新连接服务器后再试,如果问题依旧,建议换用
scp或sftp等更通用的方式进行传输,它们对终端客户端的依赖性更小。