溫馨提示×

如何通過SFTP在Linux間傳輸大文件

小樊
53
2025-04-26 04:32:51
欄目: 智能運維

通過SFTP(SSH File Transfer Protocol)在Linux系統之間傳輸大文件是一種安全且高效的方法。以下是詳細的步驟指南,幫助你順利完成大文件的傳輸:

1. 確保SFTP服務已安裝并運行

首先,確保目標服務器上已經安裝并啟用了SFTP服務。大多數Linux發行版默認使用OpenSSH,其中包含SFTP功能。

檢查SSH服務狀態:

sudo systemctl status sshd

如果未啟動,可以使用以下命令啟動:

sudo systemctl start sshd

啟用SSH服務開機自啟:

sudo systemctl enable sshd

2. 使用SSH密鑰認證(推薦)

為了提高安全性并避免每次傳輸時輸入密碼,建議使用SSH密鑰進行認證。

生成SSH密鑰對(如果尚未生成):

ssh-keygen -t rsa -b 4096

按照提示操作,通常密鑰會保存在~/.ssh/id_rsa(私鑰)和~/.ssh/id_rsa.pub(公鑰)。

將公鑰復制到目標服務器:

ssh-copy-id username@remote_host

替換username為目標服務器的用戶名,remote_host為目標服務器的IP地址或域名。系統會提示輸入目標服務器用戶的密碼。

測試無密碼登錄:

ssh username@remote_host

如果無需輸入密碼即可登錄,說明配置成功。

3. 使用SFTP傳輸大文件

有多種方法可以通過SFTP傳輸大文件,以下介紹兩種常用的方法:

方法一:使用命令行SFTP客戶端

連接到遠程服務器:

sftp username@remote_host

傳輸文件:

  • 上傳文件到遠程服務器:

    put /path/to/local/largefile.zip /remote/path/largefile.zip
    

    這里/path/to/local/largefile.zip是本地文件的路徑,/remote/path/largefile.zip是遠程服務器上的目標路徑。

  • 從遠程服務器下載文件:

    get /remote/path/largefile.zip /path/to/local/largefile.zip
    

退出SFTP會話:

bye

方法二:使用SCP(基于SSH的文件傳輸工具)

雖然SCP不是純粹的SFTP工具,但它通過SSH進行加密傳輸,適合大文件操作。

上傳文件:

scp /path/to/local/largefile.zip username@remote_host:/remote/path/largefile.zip

下載文件:

scp username@remote_host:/remote/path/largefile.zip /path/to/local/largefile.zip

4. 處理大文件傳輸中的常見問題

a. 增加SSH緩沖區大小

對于非常大的文件,可能需要增加SSH的緩沖區大小以避免傳輸中斷。

編輯或創建/etc/ssh/sshd_config文件,添加或修改以下行:

ClientAliveInterval 60
ClientAliveCountMax 3

然后重啟SSH服務:

sudo systemctl restart sshd

b. 使用rsync進行斷點續傳

rsync不僅可以同步文件,還支持斷點續傳,適合在網絡不穩定的情況下傳輸大文件。

安裝rsync(如果尚未安裝):

sudo apt-get install rsync    # Debian/Ubuntu
sudo yum install rsync        # CentOS/RHEL

上傳文件:

rsync -avz --progress /path/to/local/largefile.zip username@remote_host:/remote/path/

下載文件:

rsync -avz --progress username@remote_host:/remote/path/largefile.zip /path/to/local/

--progress選項可以顯示傳輸進度,便于監控。

5. 使用圖形化SFTP客戶端(可選)

如果你更喜歡使用圖形界面進行文件傳輸,可以考慮以下工具:

  • FileZilla:一款跨平臺的FTP/SFTP客戶端,支持大文件傳輸,界面友好。
  • WinSCP:適用于Windows用戶的SFTP客戶端,同樣支持Linux服務器。
  • Cyberduck:支持多種協議的文件傳輸工具,適用于Mac和Linux。

這些工具通常提供拖放功能、斷點續傳和詳細的傳輸日志,適合不熟悉命令行的用戶。

6. 監控傳輸進度

對于大文件傳輸,監控進度非常重要,以確保傳輸順利完成并及時發現潛在問題。

使用pv命令監控傳輸進度:

首先安裝pv

sudo apt-get install pv    # Debian/Ubuntu
sudo yum install pv        # CentOS/RHEL

上傳文件時監控:

pv /path/to/local/largefile.zip | ssh username@remote_host "cat > /remote/path/largefile.zip"

下載文件時監控:

ssh username@remote_host "pv /remote/path/largefile.zip" > /path/to/local/largefile.zip

總結

通過以上步驟,你可以安全且高效地在Linux系統之間傳輸大文件。使用SSH密鑰認證提高了安全性,選擇合適的工具和方法可以優化傳輸過程,確保大文件順利傳輸。如果在傳輸過程中遇到問題,可以參考相關日志或使用監控工具進行排查。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女