在無圖形界面的 Linux 服務器與 Windows 本地交換文件,rz (接收/上傳) 和 sz (發送/下載) 基於 ZModem 協議,無需啟動 FTP/SCP 服務,通過終端串口通道直接傳輸,極其方便。本文詳細講解 lrzsz 安裝、主流終端客戶端 (SecureCRT、Xshell、MobaXterm、Putty+ZModem) 配置、批量傳輸、斷點續傳、大文件優化、常見亂碼/失敗排查,讓文件傳輸像本地複製一樣絲滑。
rz/sz 為客戶端程序。| 發行版 | 安裝命令 | 包名 |
|---|---|---|
| CentOS/RHEL/Fedora | yum install -y lrzsz | lrzsz |
| Ubuntu/Debian | apt install -y lrzsz | lrzsz |
| openSUSE | zypper install -y lrzsz | lrzsz |
| Arch/Manjaro | pacman -S lrzsz | lrzsz |
| 源碼編譯 (通用) | wget https://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz && tar xzf ... && ./configure && make && make install | - |
安裝後驗證:which rz sz → /usr/bin/rz /usr/bin/sz
rz 指令自動彈出文件選擇框;收到 sz file 自動下載到指定目錄。rz/sz 按鈕工具欄,一鍵觸發。PSZ/PSR 腳本) 或改用 KiTTY (PuTTY 增強版,內建 ZModem)。
# 當前目錄上傳單文件
rz
# 彈出框選擇本地文件 → 確認 → 進度條 → 完成
# 批量上傳 (支援通配符選擇多文件)
rz -be # -b 二進位模式, -e 強制轉義控制字符 (推薦組合)
# 指定上傳目標目錄
cd /target/dir && rz -be
# 下載單文件
sz filename.txt
# 下載多文件
sz file1.log file2.log file3.tar.gz
# 批量下載整個目錄 (需打包)
tar czf - /source/dir | sz - # 管道流式傳輸,客戶端接收為壓縮包
# 斷點續傳 (ZModem 原生支援)
# 網絡中斷後重新連接,再次執行相同 sz 命令,客戶端會提示續傳
# 服務器端發送大文件
sz -b -k -y 1024 largefile.iso
# -b 二進位, -k 1KB 包大小, -y 1024 窗口大小 (增加吞吐)
# 客戶端接收大文件 (SecureCRT/Xshell 設置)
# 設置 Zmodem 包大小 1024/2048/4096 字節,窗口大小 1024/2048/4096 幀
| 現象 | 原因 | 解決方案 |
|---|---|---|
| 執行 rz/sz 無反應、光標閃爍 | 客戶端未啟用 ZModem 或協議不匹配 | 檢查終端設置啟用 ZModem,嘗試 rz -e 強制轉義 |
| 上傳/下載中斷、卡死 | 網絡延遲大、串口緩衝區溢出、控制字符衝突 | 加 -e 參數、降低包大小/窗口、使用 screen/tmux 保持會話 |
| 文件名中文亂碼 | 客戶端編碼 (GBK) 與服務器 (UTF-8) 不一致 | SecureCRT: 會話選項 → 外觀 → 字符編碼 設置 UTF-8;或服務器 export LANG=zh_CN.UTF-8 |
| 下載文件大小為 0 / 損壞 | 二進位/文本模式錯誤、管道重定向干擾 | 強制二進位 sz -b file、避免在腳本中混用 stdout |
提示 rz: command not found | 未安裝 lrzsz 或 PATH 未包含 /usr/bin | yum/apt install lrzsz、export PATH=$PATH:/usr/bin |
| 無法覆蓋同名文件 | 客戶端設置「詢問覆蓋」 | 設置「自動覆蓋」或 rz -y (覆蓋)、rz -n (重命名) |
sudo mv 到位。rz -l /var/log/rz.log、sz -l /var/log/sz.log 審計文件流向。rz/sz 通過 ZModem 協議在終端通道實現「零配置、零端口、圖形化交互」的文件傳輸,是運維人員日常「傳個配置、拉個日誌、傳個腳本」的最高效利器。關鍵在於 服務器安裝 lrzsz、客戶端啟用 ZModem、設置下載/上傳目錄、大文件加 -be 參數。掌握這套組合拳,告別 WinSCP/FileZilla 打開等待、密碼輸入、目錄導航的繁瑣流程,實現真正的「指尖傳輸」。