資安

科普|不同協議下遠程服務器文件上傳_下載優劣對比

頭圖.png

作為一個程序員,如果不知道如何進行遠程服務器的文件上傳與下載,實在是一件尷尬的事情。打開百度,搜索「遠程服務器 上傳下載」,你能得到 63,100,000 個搜搜結果,五花八門的操作方式的讓人眼花繚亂。

那麼,今天我們聊聊如何實現遠程服務器的文件上傳與下載。通常而言,我們會選擇 ftp、scp 以及 sftp 進行文件傳輸。但 ftp 基於 TCP 來傳輸文件,明文傳輸用戶信息和數據,存在一定的安全風險。所以我們更傾向於選擇基於 SSH 來加密傳輸的 scp 和 sftp,但結合速度、安全性和功能的要求,這兩種協議各有優劣。接下來,我們做個簡單比較,也許會讓你的日常選擇更加高效。

什麼是 scp?

scp 是一種基於 SSH 的協議,主要用在網絡上的主機之間提供文件傳輸。使用 scp,我們可以在主機之間快速傳輸文件以及基本文件屬性,例如訪問權限和通過 FTP 無法可用的時間戳。scp 協議使用 RCP 傳輸文件和 SSH 以提供身份驗證和加密。

如何通過 scp 進行文件上傳與下載?

先介紹我們最常見的,在 linux 中可以使用 scp 進行文件上傳和下載。

  • 文件上傳:scp localfile user@host:/dirpath

即 SCP 文件路徑遠程主機用戶名@ip:/存放文件的路徑,比如 scp hello.txt user@ip:/home/user/dirpath

  • 從本地上傳目錄到遠程主機 : scp -r localdir user@host:/dirpath

即 scp -r 本地目錄路徑遠程主機用戶名@ip:/存放文件路徑

  • 從遠程主機下載東西到本地電腦拷貝文件命令 scp user@host:/path/file /localpath

即 scp用戶名@IP:/文件路徑 /本地文件路徑

  • 如果拷目錄就 scp -r user@host:/dirpath /localpath

即 scp -r 用戶名@IP:/目錄路徑 /本地文件路徑

什麼是 sftp?

sftp 同樣是基於 SSH 的文件傳輸協議,但功能更強大。相較於 scp,更像是遠程文件管理協議,sftp 允許對遠程文件(查看目錄,刪除文件和目錄等)進行一系列操作。

如何通過 sftp 進行文件上傳與下載

而 sftp 下,我們可以通過 linux 命令行,使用 SFTP 命令進行直接操作:

  • sftp 用戶名@ip;
  • 回車提示輸入密碼,進入提示符 sftp>;
  • 在 sftp 中 get 表示下載,put 表示上傳;
  • sftp> get 遠程主機下文件的路徑、將文件保存到本地電腦的路徑;
  • sftp> put 本地文件的路徑、將文件版保存到遠程主機的路徑;
  • pwd 命令可以幫您查詢遠程主機的當前路徑。查詢本機當前工作目錄 lpwd.,改變路徑可以用 cd ,改變本機路徑可以用 lcd;ls rm rmdir mkdir 這些命令都可以使用。同理調用本機都是加 l , 即 lls lrm。

到底什麼時候應該使用 scp 或 sftp?

  • 速度:在傳輸文件時,scp 通常比 sftp 快得多,尤其是在網絡延遲很高的情況下。這是因為 scp 實現了更高效的傳輸算法,不需要等待數據包確認, 那麼,我們就選擇 scp;
  • 安全性:由於兩種協議都都基於 SSH,因此它們都提供相同的安全功能,包括密碼和數據加密以及公鑰驗證,那麼,scp 或 sftp 皆可;
  • 功能/可用性:如果我們需要使用包括查看/搜索目錄,創建文件夾和組織文件,刪除或重命名文件等功能,那麼,sftp 是最好的選擇;
  • 傳輸文件大小:scp 和 sftp 都沒有文件大小限制。但根據傳輸文件大小,scp 可能略有優勢。

我們要做什麼?

但不管是 scp 還是 sftp,我們都需要輸入相關指令行。一頓操作猛如虎,其實只為了完成簡單的文件上傳與下載。當然,除去常見的 CLI 指令行的形式,我們可以通過現在比較受歡迎的終端模擬器軟件 xshell 和 securecrt 實現相關功能。xshell 和 securecrt 作為常用的串口終端工具,通過可視化形式可以滿足相關需求並具備著豐富的延展功能。但經過用戶調研,我們發現開發者其實有時只是希望實現上傳以及下載功能。與此同時,功能能夠與開發環境集成,這樣子在 IDE 裡面就可以寫代碼和文件上下傳都可以無縫進行了。

那麼,現在有了更簡單的遠程服務器文件上傳與下載方式。藉助 IDE 內的遠程服務器文件瀏覽器,我們可以更加便捷的形式實現上傳、下載文件。而這一切,我們僅需要 Cloud Toolkit 即可,只需三步即可,就像把大象關進冰箱一樣簡單。

  • 在 IntelliJ IDEA 菜單欄選擇 Tools > Alibaba Cloud > Alibaba Cloud View > Host
  • 在 Host 列表右側 Action 選擇 More > Remote Files
  • 可根據需求選擇刷新、上傳和下載遠程服務器上的文件

1.png

此外,還可以藉助 Cloud Toolkit 將本地應用快速部署到阿里雲 ECS、EDAS、容器服務 Kubernetes 版和任意服務器中去,還可以使用 Arthas 診斷、文件或文件夾上傳、內置 Terminal 等諸多功能。

如何安裝 Cloud Toolkit

Cloud Toolkit 提供 IntelliJ IDEA、Eclipse、VS Code、PyCharm 多個版本供開發者使用。這裡,我們以 IntelliJ IDEA 舉例。我們可以直接在 JetBrains 插件市場搜索 Alibaba Cloud Toolkit 並下載安裝。

  1. 在 IntelliJ IDEA 頂部菜單欄中選擇 File > Settings
  2. 在 Settings 對話框的左側導航欄中單擊 Plugins
  3. 在 Plugins 區域單擊 Marketplace
  4. 在搜索欄中輸入 Alibaba Cloud Toolkit
  5. Search Results 區域會出現 Alibaba Cloud Toolkit,單擊 Install

2.png

  1. 等待下載、安裝完成後,單擊 Restart IDE
  2. IntelliJ IDEA 重啟後,在菜單欄中選擇 File > Settings,在 Settings 對話框左側的導航欄中可以看到 Alibaba Cloud Toolkit,則說明安裝成功

是不是很簡單,那就快來下載 Cloud Toolkit!

關於 Cloud Toolkit

Alibaba Cloud Toolkit(後文簡稱 Cloud Toolkit)可以幫助開發者更高效地部署、測試、開發和診斷應用。Cloud Toolkit 與主流 IDE 及阿里雲其他產品無縫集成,幫助您大大簡化應用部署到服務器,尤其是阿里雲服務器中的操作。您還可以通過其內嵌的Arthas程序診斷、Terminal Shell 終端和 MySQL 執行器等工具,簡化應用開發、測試和診斷的過程。目前有超過 10w 開發者選擇使用 Cloud Toolkit 提升日常研發效率。

點擊鏈接立即體驗 Cloud Toolkit:https://www.aliyun.com/product/cloudtoolkit

阿里巴巴雲原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,做最懂雲原生開發者的公眾號。”

Leave a Reply

Your email address will not be published. Required fields are marked *