FTP簡介
- FTP:(File Transfer Protocol ),全稱文件傳輸協(xié)議,早期的三大應用級協(xié)議之一
- 他也基于TCP協(xié)議來工作,屬于應用層協(xié)議
- 文件傳輸協(xié)議的原始規(guī)范于1971年4月16日發(fā)布為RFC 114
- 直到1980年,F(xiàn)TP運行在TCP/ IP的前身NCP上
- 該協(xié)議后來被TCP / IP版本预愤,RFC 765(1980年6月)和RFC 959(1985年10月)(當前規(guī)范)所取代
- RFC 959提出了若干標準修改,例如RFC 1579(1994年2月)啟用防火墻FTP(被動模式),RFC 2228(1997年6月)提出安全擴展侯嘀,RFC 2428(1998年9月)增加了對IPv6的支持,并定義了一種新型的被動模式
- FTP服務一般運行在20和21兩個端口
- 端口20用于在客戶端和服務器之間傳輸數(shù)據(jù)流谱轨,而端口21用于傳輸控制流戒幔,并且是命令通向ftp服務器的進口
- 當數(shù)據(jù)通過數(shù)據(jù)流傳輸時,控制流處于空閑狀態(tài)
- 而當控制流空閑很長時間后土童,客戶端的防火墻會將其會話置為超時诗茎,這樣當大量數(shù)據(jù)通過防火墻時,會產(chǎn)生一些問題
- 此時献汗,雖然文件可以成功的傳輸敢订,但因為控制會話,會被防火墻斷開罢吃;傳輸會產(chǎn)生一些錯誤
FTP服務
- FTP有兩種使用模式:主動和被動
- 主動模式要求客戶端和服務器端同時打開并且監(jiān)聽一個端口以創(chuàng)建連接楚午。在這種情況下,客戶端由于安裝了防火墻會產(chǎn)生一些問題
- 所以尿招,創(chuàng)立了被動模式矾柜,被動模式只要求服務器端產(chǎn)生一個監(jiān)聽相應端口的進程,這樣就可以繞過客戶端安裝了防火墻的問題
- 一個主動模式的FTP連接創(chuàng)建要遵循以下步驟:
- 客戶端打開一個隨機的端口(端口號大于1024泊业,在這里把沼,我們稱它為x),同時一個FTP進程連接至服務器的21號命令端口吁伺,此時該tcp連接的來源地端口為客戶端指定的隨機端口x,目的地端口(遠程端口)為服務器上的21號端口
- 客戶端開始監(jiān)聽端口(x+1)租谈,同時向服務器發(fā)送一個端口命令(通過服務器的21號命令端口)篮奄,此命令告訴服務器客戶端正在監(jiān)聽的端口號并且已準備好從此端口接收數(shù)據(jù)捆愁,這個端口就是我們所知的數(shù)據(jù)端口
- 服務器打開20號源端口并且創(chuàng)建和客戶端數(shù)據(jù)端口的連接、此時窟却,來源地的端口為20昼丑,遠程數(shù)據(jù)(目的地)端口為(x+1)
- 客戶端通過本地的數(shù)據(jù)端口創(chuàng)建一個和服務器20號端口的連接,然后向服務器發(fā)送一個應答夸赫,告訴服務器它已經(jīng)創(chuàng)建好了一個連接
- 雙通道協(xié)議:數(shù)據(jù)和命令連接
- 數(shù)據(jù)傳輸格式:二進制(默認)和文本
- 兩種模式:服務器角度
- 主動 (PORT style) :服務器主動連接
- 命令(控制):客戶端:隨機 port ---> 服務器: tcp21
- 數(shù)據(jù):客戶端:隨機 port+1 <--- 服務器: tcp20
- 被動 (PASV style) :客戶端主動連接
- 命令(控制):客戶端:隨機 port ---> 服務器: tcp21
- 數(shù)據(jù):客戶端:隨機 port+1 --->服務器:隨機 port
- 服務器被動模式數(shù)據(jù)端口示例:
- 227 Entering Passive Mode (192,168,175,138,224,59)
- 服務器數(shù)據(jù)端口為: 224*256+59
- FTP優(yōu)點
- 促進文件的共享(計算機程序或數(shù)據(jù))
- 鼓勵間接或者隱式的使用遠程計算機
- 向用戶屏蔽不同主機中各種文件存儲系統(tǒng)(File system)的細節(jié)
- 可靠和高效的傳輸數(shù)據(jù)
- FTP缺點
- 密碼和文件內(nèi)容都使用明文傳輸菩帝,可能發(fā)生竊聽。
- 因為必須開放一個隨機的端口以創(chuàng)建連接茬腿,當防火墻存在時呼奢,客戶端很難過濾處于主動模式下的FTP流量,這個問題切平,通過使用被動模式的FTP握础,得到了很大解決。
- 服務器可能會被告知連接一個第三方計算機的保留端口悴品。
- 此方式在需要傳輸文件數(shù)量很多的小文件時禀综,性能不好
- 狀態(tài)碼:
- 1XX :信息 125 :數(shù)據(jù)連接打開
- 2XX :成功類狀態(tài) 200 :命令 OK 230 :登錄成功
- 3XX :補充類 331 :用戶名 OK
- 4XX :客戶端錯誤 425 :不能打開數(shù)據(jù)連接
- 5XX :服務器錯誤 530 :不能登錄
FTP 軟件介紹
- FTP 服務器軟件:
- Wu-ftpd , Proftpd 苔严, Pureftpd 定枷, ServU , IIS
- vsftpd:Very Secure FTP Daemon 届氢, CentOS 默認 FTP 服務器
- 高速欠窒,穩(wěn)定,下載速度是 WU-FTP 的兩倍
- ftp,redhat.com 數(shù)據(jù) : 單機最多可支持 15000 個并發(fā)
- FTP 客戶端軟件:
- ftp 悼沈, lftp 贱迟, lftpget , wget 絮供, curl
- ftp -A ftpserver port -A 主動模式 –p 被動模式
- 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客戶端軟件