FTP簡(jiǎn)介
- FTP:(File Transfer Protocol ),全稱文件傳輸協(xié)議,早期的三大應(yīng)用級(jí)協(xié)議之一
- 他也基于TCP協(xié)議來(lái)工作,屬于應(yīng)用層協(xié)議
- 文件傳輸協(xié)議的原始規(guī)范于1971年4月16日發(fā)布為RFC 114
- 直到1980年,F(xiàn)TP運(yùn)行在TCP/ IP的前身NCP上
- 該協(xié)議后來(lái)被TCP / IP版本,RFC 765(1980年6月)和RFC 959(1985年10月)(當(dāng)前規(guī)范)所取代
- RFC 959提出了若干標(biāo)準(zhǔn)修改,例如RFC 1579(1994年2月)啟用防火墻FTP(被動(dòng)模式),RFC 2228(1997年6月)提出安全擴(kuò)展,RFC 2428(1998年9月)增加了對(duì)IPv6的支持,并定義了一種新型的被動(dòng)模式
- FTP服務(wù)一般運(yùn)行在20和21兩個(gè)端口
- 端口20用于在客戶端和服務(wù)器之間傳輸數(shù)據(jù)流,而端口21用于傳輸控制流,并且是命令通向ftp服務(wù)器的進(jìn)口
- 當(dāng)數(shù)據(jù)通過數(shù)據(jù)流傳輸時(shí),控制流處于空閑狀態(tài)
- 而當(dāng)控制流空閑很長(zhǎng)時(shí)間后,客戶端的防火墻會(huì)將其會(huì)話置為超時(shí),這樣當(dāng)大量數(shù)據(jù)通過防火墻時(shí),會(huì)產(chǎn)生一些問題
- 此時(shí),雖然文件可以成功的傳輸,但因?yàn)榭刂茣?huì)話,會(huì)被防火墻斷開;傳輸會(huì)產(chǎn)生一些錯(cuò)誤
FTP服務(wù)
- FTP有兩種使用模式:主動(dòng)和被動(dòng)
- 主動(dòng)模式要求客戶端和服務(wù)器端同時(shí)打開并且監(jiān)聽一個(gè)端口以創(chuàng)建連接。在這種情況下,客戶端由于安裝了防火墻會(huì)產(chǎn)生一些問題
- 所以,創(chuàng)立了被動(dòng)模式,被動(dòng)模式只要求服務(wù)器端產(chǎn)生一個(gè)監(jiān)聽相應(yīng)端口的進(jìn)程,這樣就可以繞過客戶端安裝了防火墻的問題
- 一個(gè)主動(dòng)模式的FTP連接創(chuàng)建要遵循以下步驟:
- 客戶端打開一個(gè)隨機(jī)的端口(端口號(hào)大于1024,在這里,我們稱它為x),同時(shí)一個(gè)FTP進(jìn)程連接至服務(wù)器的21號(hào)命令端口,此時(shí)該tcp連接的來(lái)源地端口為客戶端指定的隨機(jī)端口x,目的地端口(遠(yuǎn)程端口)為服務(wù)器上的21號(hào)端口
- 客戶端開始監(jiān)聽端口(x+1),同時(shí)向服務(wù)器發(fā)送一個(gè)端口命令(通過服務(wù)器的21號(hào)命令端口),此命令告訴服務(wù)器客戶端正在監(jiān)聽的端口號(hào)并且已準(zhǔn)備好從此端口接收數(shù)據(jù),這個(gè)端口就是我們所知的數(shù)據(jù)端口
- 服務(wù)器打開20號(hào)源端口并且創(chuàng)建和客戶端數(shù)據(jù)端口的連接、此時(shí),來(lái)源地的端口為20,遠(yuǎn)程數(shù)據(jù)(目的地)端口為(x+1)
- 客戶端通過本地的數(shù)據(jù)端口創(chuàng)建一個(gè)和服務(wù)器20號(hào)端口的連接,然后向服務(wù)器發(fā)送一個(gè)應(yīng)答,告訴服務(wù)器它已經(jīng)創(chuàng)建好了一個(gè)連接
- 雙通道協(xié)議:數(shù)據(jù)和命令連接
- 數(shù)據(jù)傳輸格式:二進(jìn)制(默認(rèn))和文本
- 兩種模式:服務(wù)器角度
- 主動(dòng) (PORT style) :服務(wù)器主動(dòng)連接
- 命令(控制):客戶端:隨機(jī) port ---> 服務(wù)器: tcp21
- 數(shù)據(jù):客戶端:隨機(jī) port+1 <--- 服務(wù)器: tcp20
- 被動(dòng) (PASV style) :客戶端主動(dòng)連接
- 命令(控制):客戶端:隨機(jī) port ---> 服務(wù)器: tcp21
- 數(shù)據(jù):客戶端:隨機(jī) port+1 --->服務(wù)器:隨機(jī) port
- 服務(wù)器被動(dòng)模式數(shù)據(jù)端口示例:
- 227 Entering Passive Mode (192,168,175,138,224,59)
- 服務(wù)器數(shù)據(jù)端口為: 224*256+59
- FTP優(yōu)點(diǎn)
- 促進(jìn)文件的共享(計(jì)算機(jī)程序或數(shù)據(jù))
- 鼓勵(lì)間接或者隱式的使用遠(yuǎn)程計(jì)算機(jī)
- 向用戶屏蔽不同主機(jī)中各種文件存儲(chǔ)系統(tǒng)(File system)的細(xì)節(jié)
- 可靠和高效的傳輸數(shù)據(jù)
- FTP缺點(diǎn)
- 密碼和文件內(nèi)容都使用明文傳輸,可能發(fā)生竊聽。
- 因?yàn)楸仨氶_放一個(gè)隨機(jī)的端口以創(chuàng)建連接,當(dāng)防火墻存在時(shí),客戶端很難過濾處于主動(dòng)模式下的FTP流量,這個(gè)問題,通過使用被動(dòng)模式的FTP,得到了很大解決。
- 服務(wù)器可能會(huì)被告知連接一個(gè)第三方計(jì)算機(jī)的保留端口。
- 此方式在需要傳輸文件數(shù)量很多的小文件時(shí),性能不好
- 狀態(tài)碼:
- 1XX :信息 125 :數(shù)據(jù)連接打開
- 2XX :成功類狀態(tài) 200 :命令 OK 230 :登錄成功
- 3XX :補(bǔ)充類 331 :用戶名 OK
- 4XX :客戶端錯(cuò)誤 425 :不能打開數(shù)據(jù)連接
- 5XX :服務(wù)器錯(cuò)誤 530 :不能登錄
FTP 軟件介紹
- FTP 服務(wù)器軟件:
- Wu-ftpd , Proftpd , Pureftpd , ServU , IIS
- vsftpd:Very Secure FTP Daemon , CentOS 默認(rèn) FTP 服務(wù)器
- 高速,穩(wěn)定,下載速度是 WU-FTP 的兩倍
- ftp,redhat.com 數(shù)據(jù) : 單機(jī)最多可支持 15000 個(gè)并發(fā)
- FTP 客戶端軟件:
- ftp , lftp , lftpget , wget , curl
- ftp -A ftpserver port -A 主動(dòng)模式 –p 被動(dòng)模式
- lftp –u username ftpserver
- lftp username@ftpserver
- lftpget ftp://ftpserver/pub/file
- gftp: GUI centos5 最新版 2.0.19 (11/30/2008)
- filezilla , CuteFtp , FlashFXP , LeapFtp ,等等FTP客戶端軟件