1. 程式人生 > >1. 項目介紹

1. 項目介紹

開放端口 color 客戶 開啟 執行命令 管理 兩種 響應 包括

一、FTP協議

FTP協議是一種應用層協議,其采用服務端與客戶端進行通信的方式來共享文件。它作為網絡共享文件的傳輸協議,在網絡應用軟件中具有廣泛的應用。它的目標是提高文件的共享性和可靠高效地傳送數據。

在傳輸文件時,FTP 客戶先與服務器建立連接,然後向服務器發送命令。服務器收到命令後給予響應,並執行命令。

一般的 C/S 應用程序一般只建立一個 socket 連接,這個連接同時處理服務器端和客戶端的連接命令數據傳輸。而FTP協議則將命令與數據分開傳送,這提高了效率。

FTP傳輸分為命令傳輸和數據傳輸,它們各使用一個獨立的socket通信。

二、命令端口和數據端口

FTP協議使用 2 個端口,分別為命令端口

數據端口,它們在服務器端的端口號分別為21和20。

【命令端口】

用於傳送命令的那個連接,該連接主要負責 FTP 命令的發送和接收返回的響應信息。依靠這個連接發送FTP命令即可完成諸如“登錄”、“改變目錄”、“刪除文件”等操作。

每一個 FTP 命令(命令都是字符串)發送之後,FTP 服務器都會返回一個字符串,其中包括一個響應碼(用於判斷命令是否成功執行)和一些說明信息。

【數據端口】

用於數據傳輸的那個連接,該連接主要負責上傳/下載文件、顯示目錄列表。

三、主動模式和被動模式(建立文件傳輸連接的兩種方式)

【主動模式(PORT)】

客戶端隨機打開一個端口N(大於1024)作為己方的命令端口

,向服務器的命令端口(21)發起連接,同時開放端口N+1作為己方的數據端口,並在這個端口監聽,然後向服務器發出“port N+1”命令。

服務器需從它自己的數據端口(20)主動連接到客戶端指定的數據端口(N+1),從而進行數據的傳輸。

在這種模式下,文件傳輸連接服務器發起。對於客戶端的防火墻來說,這是從外部到內部的連接,可能會將其過濾。

【被動模式(PASS)】

當開啟一個 FTP 連接時,客戶端打開兩個端口N(大於1024)和N+1。端口N連接服務器的命令端口(21),然後發出“PASV”命令。

服務器收到“PASV”命令後會打開一個端口P(大於1024),返回一個包含IP地址及端口號(特殊格式)

的字符串,如“227 entering passive mode (127,0,0,1,4,18)”。它返回了227開頭的信息,在括號中有以逗號隔開的六個數字,前四個指服務器的地址,最後兩個,將倒數第二個乘 256 再加上最後一個數字,這就是 FTP 服務器新打開的(用來進行數據傳輸的)端口P。如得到 227 entering passive mode (h1,h2,h3,h4,p1,p2),那麽端口號是 p1*256+p2,IP地址為h1.h2.h3.h4。這意味著在服務器上有一個端口被開放。

客戶端收到回復後,將取得服務器用於數據傳輸的端口P,然後通過端口N+1主動連接到服務器的端口P,從而進行數據的傳輸。

在這種模式下,文件傳輸連接由客戶端發起。因此客戶端的防火墻不會將其過濾。

【基於被動模式的文件傳輸】

服務端接收到客戶端的命令後就進行解析。如果命令是上傳或下載文件,則服務端打開一個新的端口並監聽,同時把自己監聽的IP地址和端口通過命令連接返回給客戶端。客戶端接收到後便主動發起連接,建立起文件傳輸連接,從而進行數據的傳輸。

【兩種模式下的IP地址和端口的特殊格式】

舉例:IP地址:192.168.1.120,端口:4500 ===》192,168,1,120,17,148

解釋:前4個字段表示IP地址,即192.168.1.120;後2個字段表示端口號,即17 × 256 + 148 = 4500

四、常用的FTP命令

類別 命令 說明
登錄 USER 賬號\r\n 指定登錄賬號
PASS 密碼\r\n 指定登錄密碼
QUIT\r\n 關閉與服務器的連接
建立文件傳輸連接 PASV\r\n

被動模式,讓服務器在數據端口監聽

服務端會回復一個IP地址和端口,然後客戶再發起連接

PORT h1,h2,h3,h4,p1,p2\r\n

主動模式,告訴服務器客戶端監聽的數據端口號

讓服務器采用主動連接客戶端

文件傳輸 RETR 文件名\r\n 下載文件
STOR 文件名\r\n 上傳文件
目錄操作 CWD 目錄名\r\n 改變當前目錄到指定目錄

五、FTP響應碼

FTP響應碼用三位數字編碼表示:

第一個數字給出了命令狀態的一般性指示,如2表示服務器已經正確處理消息,5表示信息永久錯誤等。

第二個數字是響應類型的分類,如2表示連接狀態,3表示用戶認證等。

第三個數字提供了更加詳細的信息

FTP響應碼 含義
150 文件狀態良好,打開數據連接
200   命令成功
212 目錄狀態
213 文件狀態
500 格式錯誤,命令不可識別
125 連接打開,準備傳送
221 服務關閉控制連接,可以退出
202 命令未實現
225 數據連接打開,無傳輸正在進行
226 數據連接關閉,請求的文件操作成功
227 進入被動模式
230 用戶登錄
331 用戶名正確,需要口令
332 登陸時需要賬戶信息
425 不能打開數據連接
426 關閉連接,中止數據傳輸
450 請求的文件操作未執行
250 請求的文件操作完成
530 賬號或密碼錯誤
550 未執行請求的操作

FTP缺點:明文登錄

匿名登陸:

1、為了實現文件在互聯網上傳輸的開放性,服務端管理員可以建立一個特殊的用戶ID,
提供給互聯網上的用戶下載和上傳文件,這就是匿名用戶,它不需要密碼.

2、常用的匿名登錄名稱:anonymous

【FTP響應碼】

第一個數字的含義如下:

1 表示服務器正確接收信息,還未處理。

2 表示服務器已經正確處理信息。

3 表示服務器正確接收信息,正在處理。

4 表示信息暫時錯誤。

5 表示信息永久錯誤。

第二個數字的含義如下:

0 表示語法。

1 表示系統狀態和信息。

2 表示連接狀態。

3 表示與用戶認證有關的信息。

4 表示未定義。

5 表示與文件系統有關的信息。

1. 項目介紹