Linux—FTP服務原理及配置

FTP服務原理及配置

1.FTP定義

FTP(File Transfer Protocol,文件傳輸協議) 是 TCP/IP 協議組中的協議之一。FTP協議包括兩個組成部分,其一爲FTP服務器,其二爲FTP客戶端。其中FTP服務器用來存儲文件,用戶可以使用FTP客戶端通過FTP協議訪問位於FTP服務器上的資源。在開發網站的時候,通常利用FTP協議把網頁或程序傳到Web服務器上。此外,由於FTP傳輸效率非常高,在網絡上傳輸大的文件時,一般也採用該協議。
默認情況下FTP協議使用TCP端口中的 20和21這兩個端口,其中20用於傳輸數據,21用於傳輸控制信息。但是,是否使用20作爲傳輸數據的端口與FTP使用的傳輸模式有關,如果採用主動模式,那麼數據傳輸端口就是20;如果採用被動模式,則具體最終使用哪個端口要服務器端和客戶端協商決定。

2.FTP工作原理

FTP支持兩種模式,一種方式叫做Standard (也就是 PORT方式,主動方式),一種是 Passive(也就是PASV,被動方式)。 Standard模式 FTP的客戶端發送 PORT 命令到FTP服務器。Passive模式FTP的客戶端發送 PASV命令到 FTP Server。
下面介紹一下這兩種方式的工作原理:
Port
FTP 客戶端首先和FTP服務器的TCP 21端口建立連接,通過這個通道發送命令,客戶端需要接收數據的時候在這個通道上發送PORT命令。 PORT命令包含了客戶端用什麼端口接收數據。在傳送數據的時候,服務器端通過自己的TCP 20端口連接至客戶端的指定端口發送數據。 FTP server必須和客戶端建立一個新的連接用來傳送數據。
Passive
在建立控制通道的時候和Standard模式類似,但建立連接後發送的不是Port命令,而是Pasv命令。FTP服務器收到Pasv命令後,隨機打開一個高端端口(端口號大於1024)並且通知客戶端在這個端口上傳送數據的請求,客戶端連接FTP服務器此端口,通過三次握手建立通道,然後FTP服務器將通過這個端口進行數據的傳送。
很多防火牆在設置的時候都是不允許接受外部發起的連接的,所以許多位於防火牆後或內網的FTP服務器不支持PASV模式,因爲客戶端無法穿過防火牆打開FTP服務器的高端端口;而許多內網的客戶端不能用PORT模式登陸FTP服務器,因爲從服務器的TCP 20無法和內部網絡的客戶端建立一個新的連接,造成無法工作。

在Linux中FTP配置

1.FTP匿名賬戶的部署過程:

1、關閉防火牆和核心防護,並安裝vsftp

在這裏插入圖片描述

2、修改屬主和屬組,並創建文件

在這裏插入圖片描述

在這裏插入圖片描述

3、修改配置文件爲匿名用戶登錄

在這裏插入圖片描述

4、開啓ftp服務,並查看端口號

在這裏插入圖片描述

5、用客戶機連接

在這裏插入圖片描述

6、下載並上傳文件

在這裏插入圖片描述

2、FTP本地用戶的部署過程:

允許普通用戶登陸:

1、配置文件

在這裏插入圖片描述

2、開啓服務並添加用戶嘗試
在這裏插入圖片描述

3、在lisi目錄下創建一個文件

在這裏插入圖片描述

4、用客戶機連接

在這裏插入圖片描述

5、下載和上傳文件

在這裏插入圖片描述

在這裏插入圖片描述

6、進宿主目錄查看

在這裏插入圖片描述

允許白名單用戶登陸:

1、配置文件

在這裏插入圖片描述

2、創建用戶liming,並修改屬主,屬組和權限

在這裏插入圖片描述

3、在/opt/liming下創建文件

在這裏插入圖片描述

4、添加白名單

在這裏插入圖片描述

5、重啓服務並查看端口號

![在這裏插入圖片描述](https://img-blog.csdnimg.cn/2020110516453187.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzUwNjUwOTUz,size_16,color_FFFFFF,t_70#pic_center

6、上傳並下載文件

在這裏插入圖片描述

在這裏插入圖片描述

7、進宿主目錄查看

在這裏插入圖片描述