FTP(File Transfer Protocol,文件傳輸協議)是用於不同操作系統或不同設備之間傳輸文件的標準規範,可用於pc 、服務器、移動終端、路由器等設備之間的文件傳輸。FTP協議屬於TCP/IP協議模型的應用層。
FTP工作原理:
採用客戶端/服務器(C/S結構)的工作模式,通過TCP建立兩條鏈路:控制鏈路和數據鏈路。控制鏈路用於傳送用戶名、密碼、設置傳輸方式等控制信息,數據鏈路用於傳送文件數據。默認情況下,控制鏈路使用TCP/21端口,服務器通過21端口監聽客戶端的連接請求,此端口一直保持開啓狀態;數據鏈路默認使用TCP/20端口,只有數據傳輸時纔打開,傳輸結束後關閉。
fpt客戶端與服務器之間通信過程:
①用戶使用支持FTP協議的客戶端程序連接FTP服務器
②用戶通過客戶端想服務器發送命令,此過程使用控制鏈路(21端口)
③服務器程序(如vsftpd)接收並執行用戶發出的命令
④服務器將執行的結果返回到客戶端
比如,用戶想上傳一個文件,使用客戶端登錄ftp服務器並且驗證通過,然後使用put命令向服務器提出上傳請求,服務器響應請求並建立數據鏈路到客戶端,客戶端開始傳輸待上傳文件。
數據傳輸方式有兩種,bin(二進制)和asc(ASCII碼),二進制文件如程序、壓縮文件等要使用bin方式,文本文件要使用asc方式傳輸,否則傳輸後的文件和源文件在內容發生變化。在很多的FTP客戶端工具中提供了一種自動模式來代替這兩種模式,會自動選擇一種合適的方式傳輸。自動選擇也並不是百分百正確,如發現傳輸後的文件發生了改變就需要手動選擇對應傳輸方式。
常用的FTP服務器軟件:
linux下支撐的FTP服務器軟件有很多,常用以下幾種。
vsftpd:Very Secure FTP Daemon(非常安全的FTP)是一個安全、穩定、高性能的開源FTP服務器軟件,適用於多種UNIX和Linux系統
WU-FTPD:Washington University FTP是一個非常有名的FTP服務器端軟件,廣泛用於UNIX和Linux服務器,
ProFtpD:他是一個可靠的FTP服務器。比WU-FTP更加穩定,修復了很多BUG,並針對WU-FTP的不足做了補充。
Pure-FTP:是一個高效、簡單、安全的服務器軟件,功能多且非常實用。
在以後的文章中主要介紹vsftpd的安裝和配置。