FTP(File Transfer Protocol)——文件傳輸協議詳解


FTP原理與配置

前言

FTP是用來傳送文件的協議,使用FTP實現遠程文件傳輸的同時,還可以保證數據傳輸的可靠性和高效性。

FTP種類

FTP、TFTP、SFTP V1、SFTP V2
上述三種協議都存在安全風險,建議使用SFTP V2進行文件操作

FTP的應用

FTP傳輸文件的過程

FTP主動模式和被動模式

主動模式(默認)

FTP默認使用的主動模式,指的是服務器主動連接客戶端進行數據傳輸操作。
1、使用FTP進行數據傳輸前,會建立兩個TCP連接,端口號分別為20和21,21端口是控制命令傳輸端口,如:刪除文件、重命名文件、下載文件、列取目錄、獲取文件信息等。
2、20端口為數據傳輸端口。

主動模式傳輸過程

1、在主動模式下,客戶端會開啟N和N+1兩個端口,N為客戶端的命令端口,N+1為客戶端的數據端口。
第一步,客戶端使用端口N連接FTP服務器的命令端口21,建立控制連接並告訴服務器我這邊開啟了數據端口N+1。
第二步,在控制連接建立成功后,服務器會使用數據端口20,主動連接客戶端的N+1端口以建立數據連接。這就是FTP主動模式的連接過程。

我們可以看到,在這條紅色的數據連接建立的過程中,服務器是主動的連接客戶端的,所以稱這種模式為主動模式。

上面這張圖是通過netstat命令查看到的ftp主動模式下TCP的連接信息,首先客戶端使用49195端口連接服務器21端口建立控制連接,然后服務器使用20端口連接客戶端49197端口建立數據連接。
這里需要補充下,客戶端的命令端口和數據端口實際中並不是有些文章寫道的N和N+1的關系,兩個端口比較接近而已。

主動模式有什么利弊呢?

主動模式對FTP服務器的管理有利,因為FTP服務器只需要開啟21端口的“准入”和20端口的“准出”即可。
但這種模式對客戶端的管理不利,因為FTP服務器20端口連接客戶端的數據端口時,有可能被客戶端的防火牆攔截掉。

被動模式

上面所講的是FTP主動模式,簡單的理解就是服務器的數據端口20主動連接客戶端的數據端口,來建立數據連接,用來傳輸數據,這個數據連接的建立有可能被客戶端防火牆攔截掉。為了解決這個問題就衍生出另外一種連接模式---被動模式。被動模式也稱為passive模式。

被動模式是如何運作的呢?來看下這張圖


1、客戶端開啟N和N+1端口,用端口N連接NTP服務器的21端口建立連接,並發送PASV命令,讓FTP服務器使用被動模式,控制連接建立成功后,服務器開啟一個數據端口P,通過PORT命令將P端口告訴客戶端。
2、客戶端的數據端口N+1去連接服務器的數據端口P,建立數據連接。
我們可以看到,在這條紅色的數據連接建立的過程中,服務器是被動的等待客戶端來連接的,所以稱這種模式為被動模式。

上面這張圖是通過netstat命令查看到的“被動模式”下的TCP連接情況,首先客戶端49222端口去連接服務器的21端口,建立控制連接。然后客戶端的49224端口連接服務器的6008端口去建立數據連接。
這里有兩點需要補充
第一,客戶端的命令端口和數據端口實際中並不是有些文章寫道的N和N+1的關系,兩個端口比較接近而已;
第二,服務器的數據端口P是隨機的,這個客戶端連接過來用的是6008端口,另外一個連接過來可能用的就是7009,不過P端口的范圍是可以設置的。

被動模式有什么利弊呢?

被動模式對FTP客戶端的管理有利,因為客戶端的命令端口和數據端口都是“准出”,windows防火牆對於“准出”一般是不攔截的,所以客戶端不需要任何多余的配置就可以連接FTP服務器了。
但對服務器端的管理不利。因為客戶端數據端口連到FTP服務器的數據端口P時,很有可能被服務器端的防火牆阻塞掉。

FTP傳輸格式


FTP傳輸數據時支持兩種傳輸模式,ASCII模式和二進制模式。
ASCII模式用於傳輸文本,字符發送前被轉換成ASCII碼之后進行傳輸,接收端收到后再將其轉換成字符。二進制常用於發送圖片文件和程序文件。

FTP配置


傳輸命令


問題總結

1、FTP服務默認使用服務器哪些端口
21是控制端口 控制命令傳輸
20端口是數據傳輸端口
2、用戶沒有權限訪問任何工作目錄,應該如何解決
分配高級權限,定義默認的FTP目錄,執行 set default ftp-directory命令建立默認目錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM