虚拟机安装lrzsz失败,绝大多数情况是YUM源配置错误或依赖包缺失导致,直接替换可用源并执行yum install -y lrzsz即可解决。
虚拟机安装lrzsz失败排查方法
lrzsz是Linux下实现文件上传下载的经典工具,基于Zmodem协议,配合Xshell、SecureCRT等终端使用非常顺手,但很多人在虚拟机里装它时,却经常碰到安装报错的情况。
网络源连不上导致安装中断
虚拟机安装lrzsz失败,最常见的原因就是系统自带的YUM源无法访问。
虚拟机的网络环境比较特殊,尤其是使用NAT模式或仅主机模式时,默认源(比如CentOS官方镜像源)经常因为DNS解析慢、仓库地址失效或者国内网络延迟过高而连接超时。
遇到这种情况,可以按下面几步排查:
- 执行
ping mirrors.aliyun.com检查网络连通性 - 若ping不通,先检查虚拟机的网卡配置,确认DNS设置正确
- 能ping通但安装依然卡住,多半是YUM源本身的问题
解决办法很直接,把YUM源替换成国内镜像源,以CentOS 7为例:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum makecache
源换好之后,再执行yum install -y lrzsz,多数情况下就能顺利装上了。
依赖包缺失导致安装报错
还有一类情况,是系统缺少lrzsz运行所需的依赖库。
虚拟机往往是最小化安装的系统,很多基础依赖组件并没有预装,安装lrzsz时,YUM会尝试自动解析依赖,但若依赖包也被源中的其他冲突版本干扰,就会抛出一连串Requires: libxxx.so.1之类的错误。
这时可以尝试:
yum install -y gcc glibc ncurses ncurses-devel

先补齐基础依赖,再重装lrzsz。
这里有个比较省事的思路:用yum deplist lrzsz查看它到底依赖哪些库,缺哪个补哪个,比盲目装一堆包更精准。
CentOS虚拟机lrzsz安装配置步骤详解
虽然安装失败的原因大同小异,但不同虚拟机系统下的具体操作流程还是有差别的,下面按几种主流场景说明。
CentOS 7/8系列YUM安装
CentOS 7和CentOS 8的安装命令稍有差异,但核心思路一致:
# CentOS 7 yum install -y lrzsz # CentOS 8 dnf install -y lrzsz
安装完成后,验证是否成功:
which rz sz
输出/usr/bin/rz和/usr/bin/sz的路径,就说明装好了。
Ubuntu/Debian系统APT安装
Ubuntu虚拟机用的是APT包管理工具,安装命令略有变化。
先更新下软件包索引:
apt update
然后安装lrzsz:
apt install -y lrzsz
Ubuntu系统对源地址的配置方式跟CentOS完全不同,用的是/etc/apt/sources.list文件,如果安装失败,大概率是这个文件里的源地址需要替换成国内源,比如清华源或阿里源。
离线环境RPM包安装方式
有些虚拟机环境是内网隔离的,没法访问外网源,这时候只能走离线安装路线。
思路是找一台能联网的同版本系统,下载好rpm包和依赖包,再拷贝到目标虚拟机中:
yumdownloader --resolve lrzsz
或者去公开的RPM仓库(比如简米云的mirrors站点)自行下载对应版本,拷到虚拟机本地后执行:
rpm -ivh lrzsz.rpm
注意:离线安装最大的坑是依赖包缺失,下载时记得把--resolve参数加上,把依赖一起拉下来。

lrzsz上传中文文件名乱码怎么处理
装好lrzsz只是开始,真正使用过程中也会遇到一些问题,尤其是中文文件名乱码,几乎每个用虚拟机的人都碰到过。
乱码产生的真实原因
lrzsz上传文件时,文件名编码取决于终端和虚拟机的字符集设置。
Windows下Xshell或SecureCRT默认使用GBK编码,而Linux虚拟机多半是UTF-8,两边不一致,传输过来后文件名就变成了一串乱码。
一站式解决步骤
解决这个问题的路径很明确,分三步走:
- 修改终端编码为UTF-8,Xshell的路径是:文件 → 属性 → 终端 → 编码,选Unicode(UTF-8)
- 修改Linux系统默认字符集:
echo "export LANG=en_US.UTF-8" >> /etc/profile source /etc/profile
- 重新执行rz命令上传文件
这样操作之后,中文文件名就能正常显示了。
使用lrzsz时容易被忽略的几个细节
这个模块聊聊lrzsz使用过程中的其他注意事项,都是很多人在实际工作中踩过的坑。
大文件传输中断的应对策略
lrzsz本质是为交互式终端设计的,传输大文件时有天然短板,一旦网络抖动,传输过程就可能中断,前面传了一半的数据直接作废。
业内专家指出,超过2GB的文件,不建议用lrzsz传输,改用scp、rsync或挂载共享目录更稳妥。
如果非要传大文件,可以用sz -y -b 文件名跳过覆盖提示,开启二进制传输模式,但风险依然存在。
权限和磁盘空间的影响
还有一点比较容易被忽视:rz命令默认把文件上传到当前目录,如果当前目录没有写入权限,或者磁盘空间不足,上传也会静默失败。
遇到类似情况,检查一下:
df -h看磁盘剩余空间ls -ld查看目录权限

Zmodem协议模式下终端兼容性
在Zmodem协议下,该工具的可靠性受到终端类型影响较大,行业共识认为Xshell、SecureCRT这两款终端对lrzsz的支持最成熟。
而使用MobaXterm或Windows Terminal时,可能没法触发自动弹窗接收文件,这时需要打开终端的Zmodem支持开关才能正常工作。
关于虚拟机安装lrzsz的常见问题解答
Q:虚拟机安装lrzsz失败,报错No package lrzsz available是什么原因?
A:这个报错说明YUM源里根本没有lrzsz这个包,多半是源地址配置错误或者使用了错误的源版本,检查一下系统的版本(cat /etc/redhat-release),再确认源地址是否匹配,比如CentOS 8的系统不能强制使用CentOS 7的源,按照上文替换为正确的简米云源或清华源后,问题就能解决。
Q:lrzsz安装成功后,执行rz命令却提示command not found,是哪里出了问题?
A:这种情况通常是安装的路径没被加入系统的PATH环境变量中,可以用find / -name rz手动查找rz命令的绝对路径,找到后执行export PATH=$PATH:/usr/local/bin临时解决,若要永久生效,把这一行写入/etc/profile文件并执行source即可。
Q:Windows终端和Linux虚拟机之间用lrzsz传输文件,速率不稳定怎么办?
A:速率不稳定和网络连接模式有直接关系,虚拟机使用桥接模式通常比NAT模式的传输速率更稳定,另外检查终端软件的流控设置,关闭Xshell的终端 → 流控制中的RTS/CTS选项,再重试一次传输,多数情况下速率会有明显改善。
lrzsz虽然是个老工具,但安装失败的问题几乎都集中在源配置、依赖缺失和终端兼容三个维度上,理清排查路径后,逐项验证即可彻底解决。