1. 程式人生 > >FTP服務簡介

FTP服務簡介

存儲 文件傳輸協議 和數 允許 簡單 不同之處 ref tran 開放

目錄

1、背景

2、架構

3、工作模式

4、常用軟件

背景

各種不同操作系統之間,文件交流,遵循的統一的文件傳輸協議,就是FTP。FTP服務器(File Transfer Protocol Server)是在互聯網上提供文件存儲和訪問服務的計算機,它們依照FTP協議提供服務。簡單地說,支持FTP協議的服務器,就是FTP服務器。基於不同的操作系統有不同的FTP應用程序,而所有這些應用程序都遵守同一種協議,這樣用戶就可以把自己的文件傳送給別人,或者從其它的用戶環境中獲得文件。

架構

基於C/S架構
雙通道協議:數據和命令連接
數據傳輸格式:二進制(默認)和文本

工作模式

FTP是僅基於TCP的服務,不支持UDP。與眾不同的是FTP使用2個端口,一個數據端口和一個命令端口(也可叫做控制端口)。通常來說這兩個端口是21(命令端口)和20(數據端口)。但FTP 工作方式的不同,數據端口並不總是20。這就是主動與被動FTP的最大不同之處。主要有兩種工作模式:

主動FTP
即Port模式,客戶端從一個任意的非特權端口N(N>1024)連接到FTP服務器的命令端口,也就是21端口。然後客戶端開始監聽端口N+1,並發送FTP命令“port N+1”到FTP服務器。接著服務器會從它自己的數據端口(20)連接到客戶端指定的數據端口(N+1)。

被動FTP

為了解決服務器發起到客戶的連接的問題,人們開發了一種不同的FTP連接方式。這就是所謂的被動方式,或者叫做PASV,當客戶端通知服務器它處於被動模式時才啟用。
在被動方式FTP中,命令連接和數據連接都由客戶端發起,這樣就可以解決從服務器到客戶端的數據端口的入方向連接被防火墻過濾掉的問題。
當開啟一個 FTP連接時,客戶端打開兩個任意的非特權本地端口(N > 1024和N+1)。第一個端口連接服務器的21端口,但與主動方式的FTP不同,客戶端不會提交PORT命令並允許服務器來回連它的數據端口,而是提交 PASV命令。這樣做的結果是服務器會開啟一個任意的非特權端口(P > 1024),並發送PORT P命令給客戶端。然後客戶端發起從本地端口N+1到服務器的端口P的連接用來傳送數據。

總結
在主動模式下:FTP服務器的控制端口是21,數據端口是20,所以在做靜態映射的時候只需要開放21端口即可,他會用20端口和客戶端主動的發起連接。
在被動模式下:FTP服務器的控制端口是21,數據端口是隨機的,且是客戶端去連接對應的數據端口,所以在做靜態的映射話只開放21端口是不可以的。此時需要做DMZ。

FTP 軟件

FTP服務器軟件
Wu-ftpd,Proftpd,Pureftpd,ServU,IIS
vsftpd:Very Secure FTP Daemon,CentOS默認FTP服務器
高速,穩定,下載速度是WU-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服務簡介