什麼是 rz/sz?
- sz (send):將 Linux 伺服器上的檔案發送到本地電腦(下載)。
- rz (receive):從本地電腦選擇檔案上傳到 Linux 伺服器(上傳)。
- 基於 ZModem 協定,需終端模擬器支援(SecureCRT、Xshell、MobaXterm、ZOC、Termius 等)。
- 優點:無需開啟 FTP/SFTP 服務、穿透防火牆/堡壘機、操作直觀如同本地拖拽。
源碼編譯安裝(通用)
# 1. 下載源碼
wget https://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gz
# 若官網不可用,可用鏡像:
# wget https://github.com/jerrykuku/rzsz/raw/master/rzsz-3.48.tar.gz
# 2. 解壓
tar zxvf rzsz-3.48.tar.gz
cd rzsz-3.48/src
# 3. 編譯(Linux 選 posix)
make posix
# 4. 安裝到 PATH
cp rz sz /usr/local/bin/
# 或 /usr/bin/
# 5. 驗證
rz --version
sz --version
包管理器一鍵安裝(推薦)
# CentOS/RHEL/Fedora
yum install lrzsz -y
# 或 dnf install lrzsz -y
# Debian/Ubuntu
apt-get update && apt-get install lrzsz -y
SecureCRT 設定 ZModem 上傳/下載目錄
- 選單 Options → Session Options → Terminal → Xmodem/Zmodem。
- 勾選 Zmodem。
- 設定 Download Directory(sz 接收目錄)與 Upload Directory(rz 發送目錄)。
- 確定套用。
實戰操作
下載檔案(伺服器 → 本地)
# 在 SSH 終端輸入
sz /path/to/file.txt
# 或多檔
sz file1.txt file2.log /var/log/messages
# SecureCRT 會自動彈出儲存對話框,或直接存入預設下載目錄
上傳檔案(本地 → 伺服器)
# 在 SSH 終端輸入
rz
# SecureCRT 彈出檔案選擇視窗,選擇本地檔案 → 確定
# 檔案自動上傳至伺服器當前目錄
常見問題排查
| 現象 | 原因 | 解決 |
| 輸入 rz/sz 無反應、顯示亂碼 | 終端未支援/未啟用 ZModem | 確認 SecureCRT/Xshell 設定啟用 ZModem;嘗試 rz -bey 強制二進位/逃脫模式 |
| 上傳大檔案中斷 | 網路不穩、ZModem 視窗超時 | 改用 rz -e (逃脫模式) 或切換 SFTP/SCP |
| 中文檔名亂碼 | 編碼不一致 | 終端與伺服器同設 UTF-8;SecureCRT: Options → Session Options → Terminal → Appearance → Character Encoding = UTF-8 |
| 權限拒絕 | 當前目錄無寫入權限 | cd 到可寫目錄或 sudo rz |
進階參數速查
| 參數 | 說明 |
-b | 二進位模式(預設文字模式會做換行轉換) |
-e | 逃脫控制字元(適合二進位檔、大檔) |
-y | 覆蓋同名檔不提示 |
-q | 安靜模式(不顯示進度條) |
-t timeout | 設定超時秒數 |
總結
lrzsz (rz/sz) 是「無需額外服務、終端原生支援、操作最直觀」的跨平台檔案傳輸利器。包管理器一鍵安裝、終端勾選 ZModem、上傳下載隨心所欲。大檔、非互動、腳本化場景仍建議用 scp/rsync/sftp,但日常運維「傳個配置檔、抓個日誌」,rz/sz 秒殺一切。