Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux rz/sz 傳輸大檔案導致 Shell 崩潰?啟用 ZModem 轉義模式解決

編輯:Linux 教學

使用 rz/sz(ZModem 協議)傳輸數 MB 以上的二進位檔案時,Shell 頻繁崩潰或傳輸中斷。小檔案、文字檔多無問題。核心原因是控制字元(XON/XOFF、DLE、CR-@-CR、Ctrl-X)在傳輸過程中被終端機或網路設備攔截解析,導致協議幀不同步。

解決方法:強制發送端轉義所有控制字元

在 rz/sz 指令加入 -e 或 --escape 參數:

# 接收檔案(上傳到伺服器)
rz -e

# 發送檔案(從伺服器下載)
sz -e filename

參數說明

-e, --escape
Force sender to escape all control characters; normally XON, XOFF, DLE, CR-@-CR, and Ctrl-X are escaped.

開啟後,發送端會將所有控制字元轉義為雙位元組序列,接收端自動還原,避免被中間設備誤判為流控或指令字元。

適用場景與驗證

  • 經由堡壘機、跳板機、VPN、Serial Console 連線時極易觸發。
  • 檔案類型:壓縮包、映像檔、資料庫匯出檔、執行檔等非純文字檔。
  • 測試:傳輸 100MB+ 二進位檔,驗證 md5sum 一致、Shell 不崩潰。

進階建議

  • 長期使用者可在 ~/.bashrc 設定別名:
    alias rz='rz -e'
    alias sz='sz -e'
  • 若仍不穩定,改用 scp、sftp、rsync 等基於 SSH 的傳輸方式,可靠性更高且支援斷點續傳。
  • 檢查終端機軟體(SecureCRT、Xshell、PuTTY 等)是否啟用「ZModem 傳輸自動啟動」與「轉義控制字元」選項。
Copyright © Windows教程網 All Rights Reserved