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;如果採用被動模式,則具體最終使用哪個端口要服務器端和客戶端協商決定。
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無法和內部網絡的客戶端建立一個新的連接,造成無法工作。
1、關閉防火牆和核心防護,並安裝vsftp
2、修改屬主和屬組,並創建文件
3、修改配置文件爲匿名用戶登錄
4、開啓ftp服務,並查看端口號
5、用客戶機連接
6、下載並上傳文件
允許普通用戶登陸:
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、進宿主目錄查看