rz (Receive ZModem) 和 sz (Send ZModem) 是基於 ZModem 協議的文件傳輸工具,配合支持 ZModem 的終端模擬器 (SecureCRT, Xshell, MobaXterm, Termius) 實現 Linux 服務器與本地 Windows/Mac 之間的圖形化文件交互。本文詳解安裝、參數、實戰場景、故障排查。
-e 參數處理 XON/XOFF/DLE 等控制字符,兼容各類串口/終端。
-b 參數禁用文本模式轉換,保證文件 MD5 一致性。
# RHEL/CentOS/Fedora/Rocky/Alma
yum install -y lrzsz # 或 dnf install -y lrzsz
# Debian/Ubuntu
apt update && apt install -y lrzsz
# openSUSE
zypper in lrzsz
# Arch/Manjaro
pacman -S lrzsz
# 源碼編譯 (極少見)
wget https://github.com/jerrykuku/lrzsz/archive/refs/tags/v0.12.20.tar.gz
tar xf v0.12.20.tar.gz && cd lrzsz-0.12.20
./configure --prefix=/usr/local/lrzsz && make && make install
ln -sf /usr/local/lrzsz/bin/lrz /usr/bin/rz
ln -sf /usr/local/lrzsz/bin/lsz /usr/bin/sz
| 參數 | 含義 | 建議 |
|---|---|---|
-b | Binary 模式,禁用文本行尾轉換 (CR/LF) | 必加,保證二進制文件完整性 |
-e | Escape 所有控制字符 (Ctrl+X, DEL, XON/XOFF...) | 必加,防止終端攔截控制字符導致傳輸異常 |
-y | 覆蓋已存在文件 (不提示) | 腳本自動化常用 |
-q | 靜默模式,抑制進度條 | 腳本/後台運行 |
-t timeout | 設置超時秒數 (默認 60s) | 高延遲網絡調大 |
-v | Verbose 詳細輸出 | 調試用 |
黃金組合:rz -be / sz -be 文件...。
[root@server ~]# rz -be
rz waiting to receive.
# 終端彈出文件選擇框,選擇單個/多個文件 (Ctrl/Shift 多選),確定
# 進度條顯示:文件名、大小、速度、耗時、錯誤數
# 完成顯示 "0 errors" 即成功
[root@server ~]# sz -be app.log config.yaml
# 文件發送到本地,終端按配置目錄保存 (SecureCRT: Options > Session Options > Terminal > Xmodem/Zmodem > Directories)
# 支持通配符: sz -be *.log
rz: cancelled。Ctrl+C:服務端顯示 rz: file removed,已接收部分刪除。rz 不直接支持目錄。解決方案:
# 本地打包 → 上傳 → 服務端解包
# 本地終端 (或本地機器):
tar czf project.tar.gz project/
# 上傳 project.tar.gz
rz -be
# 服務端:
tar xzf project.tar.gz
| 現象 | 原因 | 解決 |
|---|---|---|
| 命令無響應/卡住 | 終端不支持 ZModem 或未啟用 | SecureCRT: Terminal > Xmodem/Zmodem > 勾選 "Auto-start Zmodem upload/download" |
| 上傳文件 MD5 不一致 | 未使用 -b,文本模式轉換了換行符 | 必須 rz -be;取消勾選 "Upload files as ASCII" |
| 下載無反應 / 文件為空 | sz 鏈接錯誤指向 lrz | ls -l /usr/bin/sz 檢查,重建 ln -sf /usr/bin/lsz /usr/bin/sz |
| 提示 "command not found" | 未安裝 lrzsz 包 | 參考安裝章節 |
| 傳輸極慢/失敗 | 網絡延遲高/丟包/MTU 問題 | 調大 -t 超時;改用 scp/sftp/rsync 大文件傳輸 |
| PuTTY 無法使用 | PuTTY 不支持 ZModem | 改用 Xshell/SecureCRT/MobaXterm/Termius 或 scp/sftp |
scp、sftp、rsync over SSH,加密傳輸、認證可控、可審計。rz/sz 明文傳輸,僅建議內網受信環境、小文件 (<100MB) 快速交互使用。sudo rz -be 審計操作。rz -be 上傳,sz -be file 下載,配合 SecureCRT/Xshell 等終端,是 Linux 運維「最後一公里」文件交互的利器。牢記 二進制模式 (-b) + 控制字符轉義 (-e) 保證數據完整性,大文件/生產環境轉用 scp/rsync。
