利用 rz/sz 實現 Linux 與 Windows 間文件傳輸,核心在於終端模擬器對 ZModem 協議的支持與配置。本文以主流終端 (SecureCRT, Xshell, MobaXterm, Termius) 為例,詳述安裝、配置下載/上傳目錄、自動啟動 ZModem、編碼設置、大文件傳輸替代方案。
# CentOS/RHEL/Rocky/Alma
yum install -y lrzsz
# Debian/Ubuntu
apt update && apt install -y lrzsz
# 驗證
which rz sz
rz --version
Options → Session Options → Terminal → Xmodem/Zmodem → DirectoriesDownload Folder: D:\Downloads\SecureCRTUpload Folder: D:\Uploads\SecureCRT
Auto-start Zmodem upload、Auto-start Zmodem download。
Options → Session Options → Terminal → Appearance → Character Encoding: UTF-8 (避免中文文件名亂碼)。
工具 → 選項 → 傳輸 → ZMODEM接收資料夾 (下載): D:\Downloads\Xshell發送資料夾 (上傳): D:\Uploads\Xshell
啟動 ZMODEM 接收/發送。
文件 → 屬性 → 終端 → 編碼: Unicode (UTF-8)。
lrzsz,無需服務端安裝 (但建議服務端也裝)。Settings → Configuration → Network → SSH → Zmodem,設置上傳/下載路徑,勾選自動啟動。Sftp 面板可直接拖拽文件,體驗更優。Host → Edit → Terminal → Zmodem 設置路徑、自動啟動。原版 PuTTY 無 ZModem 支持。可用修改版 PuTTYCAC、KiTTY,或改用 pscp/psftp、WinSCP (SCP/SFTP 圖形化)。
# 1. SSH 登錄服務器
# 2. 進入目標目錄
cd /opt/app/config
# 3. 執行接收命令
rz -be
# 4. 終端自動彈出文件選擇框 (或手動: 文件 → 傳輸 → ZModem 上傳)
# 5. 選擇文件 (可多選),確定
# 6. 等待進度條完成,顯示 "0 errors"
# 1. 定位文件
cd /var/log/nginx
# 2. 執行發送命令
sz -be access.log error.log
# 3. 文件自動保存至終端配置的下載目錄
# 4. 進度條完成
rz -be (Binary + Escape)。Upload files as ASCII (ZModem 上傳對話框中)。ZMODEM → 傳輸模式: Binary。rz 不支持直接上傳目錄。工作流:
# 本地打包
tar czf project.tar.gz project/
# 上傳壓縮包
rz -be
# 服務端解包
tar xzf project.tar.gz
不推薦 rz/sz:無校驗重傳機制、明文傳輸、速度受限於終端緩衝區。首選:
scp user@host:/path/file /local/pathsftp user@host → get filersync -avzP user@host:/path/ /local/path/ (斷點續傳、壓縮、校驗)localectl set-locale LANG=zh_CN.UTF-8。
ls -l /usr/bin/sz
# 錯誤指向: lrwxrwxrwx ... sz -> /usr/local/lrzsz/bin/lrz (應指向 lsz)
rm /usr/bin/sz
ln -s /usr/local/lrzsz/bin/lsz /usr/bin/sz
# 或重新安裝 lrzsz 包
rz -be 上傳,sz -be 下載,終端配置 目錄 + 自動啟動 + UTF-8 是順暢體驗三要素。小文件 (<100MB) 內網交互首選 rz/sz;大文件/跨公網/需校驗/自動化腳本,堅決用 scp/sftp/rsync。
