概述
FTP(File Transfer Protocol,檔案傳輸協定)是典型的C/S結構的應用層協定,需要由服務端軟體、用戶端軟體兩個部分共同實作檔案傳輸功能。
FTP連接配接及傳輸模式
FTP伺服器預設使用TCP協定的20、21端口與用戶端進行通信。20端口用于建立資料連接配接并傳輸檔案資料;21端口用于建立控制連接配接,并傳輸FTP控制指令。
主動模式:伺服器主動發起資料連接配接。首先用戶端向服務端的21端口建立FTP控制連接配接,當需要傳輸資料時,用戶端以PORT指令告知伺服器“我打開了某端口,你過來連接配接我”,于是伺服器從20端口向用戶端的該端口發送請求并建立資料連接配接。
被動模式:伺服器被動等待資料連接配接。如果客戶機所在網絡的防火牆禁止主動模式連接配接,通常會使用被動模式。首先由用戶端向服務端的21端口建立FTP控制連接配接,當需要傳輸資料時,伺服器以PASV指令告知用戶端“我打開了某端口,你過來連接配接我”,于是用戶端向伺服器的該端口發送請求并建立資料連接配接。
用戶端與伺服器建立好資料連接配接以後,就可以根據從控制連接配接中發送的FTP指令上傳或下載下傳檔案了。在傳輸檔案時,根據是否進行字元轉換,分為文本模式和二進制模式。
文本模式:又稱為ASCII(American Standard Code for Information Interchange,美國資訊交換标準碼)模式,這種模式在傳輸檔案時使用ASCII标準字元序列,一般隻用于純文字檔案的傳輸。
二進制模式:又稱為Binary模式,這種模式不會轉換檔案中的字元序列,更适合傳輸程式,圖檔等非純文字字元的檔案。
FTP使用者類型
使用FTP用戶端軟體通路伺服器時,通常要用到一類特殊的使用者賬号,其使用者名為ftp或anonymous,提供任意密碼(包括空密碼)都可以通過伺服器的驗證,這樣的使用者成為“匿名使用者”。一般用于提供公共檔案的下載下傳等。
除了不需要密碼驗證的匿名使用者以外,FTP伺服器還可以直接使用本機的系統使用者賬号來進行驗證,這些使用者通常被稱為“本地使用者”。匿名使用者也有對應的本地系統使用者賬号“ftp”,但對于vsftpd服務來說,本地使用者指的是除了匿名使用者以外的其他系統使用者。
有些FTP伺服器軟體還可以維護一份獨立的使用者資料庫檔案,而不是直接使用系統使用者賬号。這些位于獨立資料庫檔案中的FTP使用者賬号,被稱為“虛拟使用者”。通過使用虛拟使用者,将FTP賬戶與Linux系統賬戶的關聯性降至最低,可以為系統提供更好的安全性。
FTP伺服器軟體的種類
在windows系統中,常見的FTP伺服器軟體包括FileZilla Sener、Serv-U等,而在Linux系統中,vsftpd是目前在Linux/UNIX領域應用十分廣泛的一款FTP服務軟體。該軟體針對安全特性方面做了大量的設計。除了安全性以外,vsftpd在速度和穩定性方面的表現也相當突出。可以支援15000個使用者并發連接配接。
FTP用戶端工具的種類
windows和Linux系統預設都自帶有ftp指令程式,可以連接配接到FTP伺服器進行互動式的上傳,下載下傳通信。除此以外,還有大量的圖形化FTP用戶端工具。windows中常用的包括CuteFTP、FlashFXP、LeapFTP、Filezilla等;
環境準備工作
挂載CD光牒,搭建YUM倉庫。
安裝vsftpd服務
安裝db_load工具并建立使用者(字母行為賬戶,偶數行為密碼);
為user檔案加密并建立支援虛拟使用者的PAM認證檔案;
在vsftpd的配置檔案中添加支援虛拟使用者并啟動vsftpd服務;
給虛拟使用者建立獨立的配置檔案并給權限(配置檔案裡要有使用者配置目錄支援,上圖啟動服務上方一行就是)并指定wang使用者的根目錄
測試匿名FTP伺服器:配置好vsftpd并啟動服務以後,就可以使用FTP用戶端工具進行驗證了。windows主機中可以在“電腦”位址欄内輸入URL位址通路,在Linux的字元界面中,可以使用ftp指令進行測試。
然後在FTP伺服器的預設目錄進行檢視是否有剛建立的兩個目錄。
本文完。