目錄
- FTP、FTPS 與 SFTP 簡介
- FTP 軟件的主動模式和被動模式的區(qū)別
無論是網(wǎng)盤還是云存儲,上傳都是一項很簡單的操作。那些便捷好用的上傳整理工具所用的 FTP 協(xié)議到底是什么意義,繁雜的模式又有何區(qū)別?
二狗子最近搭建了一個圖片分享網(wǎng)站,每天都有好多人在他的網(wǎng)站上傳許多照片,這些照片還會通過內部的邏輯同步到又拍云存儲中,非常方便。
但不久后問題就來了,由于剛開始的用戶照片管理規(guī)劃沒有做好,隨著用戶上傳的圖片越來越多,云存儲的內容也越來越混亂,二狗子看著也非常難受。這不,趁著今天休息,二狗子決定好好的調整一番。
二狗子打開又拍云控制臺,上上下下找了一番沒有找到將對應文件移動到對應目錄中的功能。向又拍云客服尋求幫助后,客服薇薇告訴他,可以通過 FTP 工具來管理云存儲的文件,同時還提供了一篇詳盡的幫助文檔給二狗子 ——FTP 工具連接又拍云存儲文檔[https://help.upyun.com/knowledge-base/developer_tools/] 。
二狗子終于通過 FTP 工具連接上了云存儲,一頓操作之后,二狗子成功把照片整理的整整齊齊??粗@個讓強迫癥患者滿意舒適的存儲界面,又看了看能夠打造這個效果的 FTP 工具,二狗子滿意的點了點頭,決定一不做二不休徹徹底底的了解一下 FTP ,也看看 FTP 還有沒有其他的好用功能了。
FTP、FTPS 與 SFTP 簡介
FTP
在看相關功能之前,二狗子發(fā)現(xiàn)客戶端有三種不同的協(xié)議,分別是 FTP、FTPS 與 SFTP,為了弄清楚這是什么,二狗子打開了萬能的百科。
首先來了解一下什么是 FTP,維基百科說:FTP 即 文件傳輸協(xié)議(英語:File Transfer Protocol 的縮寫)是一個用于計算機網(wǎng)絡上在客戶端和服務器之間進行文件傳輸?shù)膽脤訁f(xié)議。完整的 FTP 是由 FTP 服務器 和 FTP 客戶端組成的,客戶端可以將本地的文件通過 FTP 協(xié)議上傳到服務器,也可以將服務器的文件下載到本地。它是當今使用的最古老的文件傳輸協(xié)議之一,是一種非常便捷的移動文件的方式。
FTP 的工作原理
FTP 連接需要 FTP 服務器和客戶端兩方在網(wǎng)絡上建立通信。建立 FTP 連接時會有兩個不同的通信通道。一個被稱為命令通道,它的作用是發(fā)出和響應指令。另一個為數(shù)據(jù)通道,用于客戶端和服務器端進行數(shù)據(jù)交互。
使用 FTP 傳輸文件時,用戶需要通過向 FTP 服務器提供憑據(jù)來獲得文件傳輸許可。當然某些公共 FTP 服務器可能不需要憑據(jù)即可訪問其文件,但是無法保證數(shù)據(jù)傳輸?shù)陌踩?,任何未加密公共網(wǎng)絡上的數(shù)據(jù)發(fā)送都是非常危險的,所以為了保護傳輸數(shù)據(jù)的安全,由 FTP 衍生而出的就是下面的兩種協(xié)議:FTPS 與 SFTP。
FTPS
接下來二狗子查詢了一下,發(fā)現(xiàn) FPTS 有 FTPS 隱式 SSL 和 FTPS 顯示 SSL 兩種模式,兩者都是用 SSL 加密。那么兩者有什么區(qū)別呢?
-
FTPS 隱式 SSL:該模式通常在端口 990 上運行。在這個模式下全部數(shù)據(jù)的交換都需要在客戶端和服務器之間建立 SSL 會話,并且服務器會拒絕任何不使用 SSL 進行的連接嘗試。
-
FTPS 顯式 SSL:顯示 SSL 下服務器可以同時支持 FTP 和 FTPS 會話。開始會話前客戶端需要先建立與 FTP 服務器的未加密連接,并在發(fā)送用戶憑證前先發(fā)送 AUTH TLS 或 AUTH SSL 命令來請求服務器將命令通道切換到 SSL 加密通道,成功建立通道后再將用戶憑證發(fā)送到 FTP 服務器,從而保證在會話期間的任何命令都可以通過 SSL 通道自動加密。
二狗子來給大家簡單快速的總結一下。當啟用隱式模式時,F(xiàn)TP 的默認端口就被改為 TCP/990,服務器自動建立安全連接,并且要求客戶端也必須支持安全連接模式也就是使用 SSL 進行連接。當啟用顯式模式時,與 FTP 連接方式和默認端口一樣,但是需要以命令 AUTH SSL/TLS 類型的命令進行激活安全連接后才能正常傳輸數(shù)據(jù)。
SFTP
最后大家來一起看看 SFTP,SFTP 是 Secure File Transfer Protocol 的縮寫,也叫作安全文件傳送協(xié)議。
如果說 FTPS 是在 FTP 協(xié)議上增加了一層 SSL ,那么 SFTP 就是是基于網(wǎng)絡協(xié)議SSH(安全外殼)的協(xié)議與前面所說的 FTP 完全不同。SFTP 不使用單獨的命令通道和數(shù)據(jù)通道,而是數(shù)據(jù)和命令都會通過單個連接以特殊格式的數(shù)據(jù)包進行傳輸。
SFTP 提供了兩種驗證連接的方法。
了解了這幾個協(xié)議之后,二狗子使用 FTP 客戶端工具就更加順手了,他可以根據(jù)自己的需求更改協(xié)議以及加密方式,而不用為不懂某個設置而煩惱。
但是,新的疑問又出現(xiàn)了,二狗子看到這里的傳輸設置中的傳輸模式,有主動和被動之分,這又是什么意思呢。不懂就問的他又打開了 baidu或google…
FTP 軟件的主動模式和被動模式的區(qū)別
主動模式
一般 FTP 的默認模式就是主動模式,也稱為 port 模式。
它是通過兩個步驟來進行工作的:
被動模式
在傳輸方式欄,你還可以手動調整為被動傳輸模式,在該模式下用戶端進行文件傳輸時,會先通過隨機端口 A 連接到服務器上的端口 21,并發(fā)出 PASV 命令建立命令通道,告訴服務端這次是被動模式連接。之后服務器會打開一個隨機端口用于數(shù)據(jù)傳輸,而客戶端通過與發(fā)出命令的端口不同的隨機端口 B 建立數(shù)據(jù)通道,從而進行文件傳輸。
被動模式與主動模式不同的地方就是客戶端啟動數(shù)據(jù)連接。在主動模式下,客戶端在命令通道上建立連接后,服務器將啟動與客戶端的數(shù)據(jù)連接。而在被動模式下,建立命令通道后,由客戶端啟動與服務器的數(shù)據(jù)連接。
因為這個區(qū)別,可以得出兩者的優(yōu)勢和缺陷。比如主動模式有利于管理 FTP 服務端,因為只需要打開 21 端口的“準入”、20 端口的“準出” 即可,但是由于服務器連接到客戶端的端口隨機,所以客戶端有可能會觸發(fā)防火墻,甚至直接被防火墻攔截掉。反之被動模式則有利于管理客戶端。
沒想到一個看似簡單的存儲工具居然還有著這么多的分類和區(qū)別,不同的模式不同的方式都可以對應不同的需求,看來以后在使用工具的時候還是可以多少了解一點相關知識,能讓工具用起來更順手更舒心~