FTP(File Transfer Protocol,檔案傳輸協定) 是 TCP/IP 協定組中的協定之一。 FTP協定包含兩個組成部分,其一為FTP伺服器,其二為FTP客戶端。其中FTP伺服器用來儲存文件,使用者可以使用FTP客戶端透過FTP協定存取位於FTP伺服器上的資源。
在開發網站的時候,通常會利用FTP協定把網頁或程式傳到Web伺服器上。此外,由於FTP傳輸效率非常高,因此在網路上傳輸大的檔案時,一般也會採用此協定。 (建議學習:web前端視訊教學)
預設情況下FTP協定使用TCP埠中的20和21這兩個端口,其中20用於傳輸數據,21用於傳輸控制資訊。但是,是否使用20作為傳輸資料的連接埠與FTP所使用的傳輸模式有關,如果採用主動模式,那麼資料傳輸連接埠就是20;如果採用被動模式,則具體最終使用哪個連接埠要伺服器端和客戶端協商決定。
和大多數Internet服務一樣,FTP也是一個客戶/伺服器系統。使用者透過一個客戶機程式連接至在遠端電腦上執行的伺服器程式。依照 FTP 協定提供服務,進行檔案傳送的電腦就是 FTP伺服器,而連接FTP伺服器,遵循FTP協定與伺服器傳送檔案的電腦就是FTP客戶端。
用戶要連上FTP 伺服器,就要用到FTP 的客戶端軟體,通常Windows自帶「ftp」指令,這是一個命令列的FTP客戶程序,另外常用的FTP 用戶程式還有FileZilla、 CuteFTP、Ws_FTP、Flashfxp、LeapFTP、流星雨-貓眼等。
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主要的安全問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!