FTP伺服器

支持FTP協議的伺服器

FTP伺服器(File Transfer Protocol Server)是在網際網路上提供文件存儲和訪問服務的計算機,它們依照FTP協議提供服務。 FTP是File Transfer Protocol(文件傳輸協議)。顧名思義,就是專門用來傳輸文件的協議。簡單地說,支持FTP協議的伺服器就是FTP伺服器。

協議


FTP是用來在兩台計算機之間傳輸文件,是Internet中應用非常廣泛的服務之一。它可根據實際需要設置各用戶的使用許可權,同時還具有跨平台的特性,即在UNIX、Linux和Windows等操作系統中都可實現FTP客戶端和伺服器,相互之間可跨平台進行文件的傳輸。因此,FTP服務是網路中經常採用的資源共享方式之一。FTP協議有PORT和PASV兩種工作模式,即主動模式和被動模式。
FTP(File Transfer Protocol)即文件傳輸協議,是一種基於TCP的協議,採用客戶/伺服器模式。通過FTP協議,用戶可以在FTP伺服器中進行文件的上傳或下載等操作。雖然現在通過HTTP協議下載的站點有很多,但是由於FTP協議可以很好地控制用戶數量和寬頻的分配,快速方便地上傳、下載文件,因此FTP已成為網路中文件上傳和下載的首選伺服器。同時,它也是一個應用程序,用戶可以通過它把自己的計算機與世界各地所有運行FTP協議的伺服器相連,訪問伺服器上的大量程序和信息。FTP服務的功能是實現完整文件的異地傳輸。特點如下:
(一)FTP使用兩個平行連接:控制連接和數據連接。控制連接在兩主機間傳送控制命令,如用戶身份、口令、改變目錄命令等。數據連接只用於傳送數據。
(二)在一個會話期間,FTP伺服器必須維持用戶狀態,也就是說,和某一個用戶的控制連接不能斷開。另外,當用戶在目錄樹中活動時,伺服器必須追蹤用戶的當前目錄,這樣,FTP就限制了併發用戶數量。
(三)FTP支持文件沿任意方向傳輸。當用戶與一遠程計算機建立連接后,用戶可以獲得一個遠程文件也可以將一本地文件傳輸至遠程機器。

服務內容


一般來說,用戶聯網的首要目的就是實現信息共享,文件傳輸是信息共享非常重要的一個內容之
FTP伺服器
FTP伺服器
一。Internet上早期實現傳輸文件,並不是一件容易的事,我們知道 Internet是一個非常複雜的計算機環境,有PC,有工作站,有MAC,有大型機,據統計連接在Internet上的計算機已有上千萬台,而這些計算機可能運行不同的操作系統,有運行Unix的伺服器,也有運行Dos、Windows的PC機和運行MacOS的蘋果機等等,而各種操作系統之間的文件交流問題,需要建立一個統一的文件傳輸協議,這就是所謂的FTP。基於不同的操作系統有不同的FTP應用程序,而所有這些應用程序都遵守同一種協議,這樣用戶就可以把自己的文件傳送給別人,或者從其它的用戶環境中獲得文件。
與大多數Internet服務一樣,FTP也是一個客戶機/伺服器系統。用戶通過一個支持FTP協議的客戶機程序,連接到在遠程主機上的FTP伺服器程序。用戶通過客戶機程序向伺服器程序發出命令,伺服器程序執行用戶所發出的命令,並將執行的結果返回到客戶機。比如說,用戶發出一條命令,要求伺服器向用戶傳送某一個文件的一份拷貝,伺服器會響應這條命令,將指定文件送至用戶的機器上。客戶機程序代表用戶接收到這個文件,將其存放在用戶目錄中。

軟體種類


Server-U
Serv-U是一種被廣泛運用的FTP伺服器端軟體,支持3x/9x/ME/NT/2K/2000/xp等全Windows系列。可以設定多個FTP伺服器、限定登錄用戶的許可權、登錄主目錄及空間大小等,功能非常完備。它具有非常完備的安全特性,支持SSl FTP傳輸,支持在多個Serv-U和FTP客戶端通過SSL加密連接保護您的數據安全等。
Serv-U 是眾多的FTP伺服器軟體之一。通過使用Serv-U,用戶能夠將任何一台PC 設置成一個FTP 伺服器,這樣,用戶或其他使用者就能夠使用FTP 協議,通過在同一網路上的任何一台PC與FTP 伺服器連接,進行文件或目錄的複製,移動,創建,和刪除等。這裡提到的FTP 協議是專門被用來規定計算機之間進行文件傳輸的標準和規則,正是因為有了象FTP 這樣的專門協議,才使得人們能夠通過不同類型的計算機,使用不同類型的操作系統,對不同類型的文件進行相互傳遞。
FileZilla
是一款經典的開源FTP解決方案,包括FileZilla客戶端和FileZillaServer。其中,FileZillaServer的功能比起商業軟體FTP Serv-U毫不遜色。無論是傳輸速度還是安全性方面,都是非常優秀的一款。
VsFTP
VSFTP是一個基於GPL發布的類Unix系統上使用的FTP伺服器軟體,它的全稱是Very Secure FTP 從此名稱可以看出來,編製者的初衷是代碼的安全。
安全性是編寫VSFTP的初衷,除了這與生俱來的安全特性以外,高速與高穩定性也是VSFTP的兩個重要特點。
在速度方面,使用ASCII代碼的模式下載數據時,VSFTP的速度是Wu-FTP的兩倍,如果Linux主機使用2.4.*的內核,在千兆乙太網上的下載速度可達86MB/S。
在穩定方面,VSFTP就更加的出色,VSFTP在單機(非集群)上支持4000個以上的併發用戶同時連接,根據Red HatFtp伺服器的數據,VSFTP伺服器可以支持15000個併發用戶.

伺服器配置


第1步,在開始菜單中依次單擊“管理工具”→“Internet信息服務(IIS)管理器”菜單項,打開“Internet信息服務
FTP伺服器
FTP伺服器
(IIS)管理器”窗口。在左窗格中展開“FTP站點”目錄,右鍵單擊“默認FTP站點”選項,並選擇“屬性”命令。
第2步,打開“默認FTP站點 屬性”對話框,在“FTP站點”選項卡中可以設置關於FTP站點的參數。其中在“FTP站點標識”區域中可以更改FTP站點名稱、監聽IP地址以及TCP埠號,單擊“IP地址”編輯框右側的下拉三角按鈕,並選中該站點要綁定的IP地址。如果想在同一台物理伺服器中搭建多個FTP站點,那麼需要為每一個站點指定一個IP地址,或者使用相同的IP地址且使用不同的埠號。在“FTP站點連接”區域可以限制連接到FTP站點的計算機數量,一般在區域網內部設置為“不受限制”較為合適。用戶還可以單擊“當前會話”按鈕來查看當前連接到FTP站點的IP地址,並且可以斷開惡意用戶的連接。
第3步,切換到“安全賬戶”選項卡,此選項卡用於設置FTP伺服器允許的登錄方式。默認情況下允許匿名登錄,如果取消選中“允許匿名連接”複選框,則用戶在登錄FTP站點時需要輸入合法的用戶名和密碼。本例選中“允許匿名連接”複選框。
第4步,切換到“消息”選項卡,在“標題”編輯框中輸入能夠反映FTP站點屬性的文字(如“伺服器配置技術務網FTP主站點”),該標題會在用戶登錄之前顯示。接著在“歡迎”編輯框中輸入一段介紹FTP站點詳細信息的文字,這些信息會在用戶成功登錄之後顯示。同理,在“退出”編輯框中輸入用戶在退出FTP站點時顯示的信息。另外,如果該FTP伺服器限制了最大連接數,則可以在“最大連接數”編輯框中輸入具體數值。當用戶連接FTP站點時,如果FTP伺服器已經達到了所允許的最大連接數,則用戶會收到“最大連接數”消息,且用戶的連接會被斷開。
第5步,切換到“主目錄”選項卡。主目錄是FTP站點的根目錄,當用戶連接到FTP站點時只能訪問主目錄及其子目錄的內容,而主目錄以外的內容是不能被用戶訪問的。主目錄既可以是本地計算機磁碟上的目錄,也可以是網路中的共享目錄。單擊“瀏覽”按鈕在本地計算機磁碟中選擇要作為FTP站點主目錄的文件夾,並依次單擊“確定”按鈕。根據實際需要選中或取消選中“寫入”複選框,以確定用戶是否能夠在FTP站點中寫入數據。
第6步,切換到“目錄安全性”選項卡,在該選項卡中主要用於授權或拒絕特定的IP地址連接到FTP站點。例如只允許某一段IP地址範圍內的計算機連接到FTP站點,則應該選中“拒絕訪問”單選框。然後單擊“添加”按鈕,在打開的“授權訪問”對話框中選中“一組計算機”單選框。然後在“網路標識”編輯框中輸入特定的網段),並在“子網掩碼”編輯框中輸入子網掩碼。最後單擊“確定”按鈕。
第7步,返回“默認FTP站點 屬性”對話框,單擊“確定”按鈕使設置生效。現在用戶已經可以在網路中任意客戶計算機的Web瀏覽器中輸入FTP站點地址來訪問FTP站點的內容了。

工作模式


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

主動

即Port模式,客戶端從一個任意的非特權埠N(N>1024)連接到FTP伺服器的命令埠,也就是21埠。然後客戶端開始監聽埠N+1,併發送FTP命令“port N+1”到FTP伺服器。接著伺服器會從它自己的數據埠(20)連接到客戶端指定的數據埠(N+1)。
針對FTP伺服器前面的防火牆來說,必須允許以下通訊才能支持主動方式FTP:
1. 任何大於1024的埠到FTP伺服器的21埠。(客戶端初始化的連接)
2. FTP伺服器的21埠到大於1024的埠。 (伺服器響應客戶端的控制埠)
3. FTP伺服器的20埠到大於1024的埠。(伺服器端初始化數據連接到客戶端的數據埠)
4. 大於1024埠到FTP伺服器的20埠(客戶端發送ACK響應到伺服器的數據埠)

被動

為了解決伺服器發起到客戶的連接的問題,人們開發了一種不同的FTP連接方式。這就是所謂的被動方式,或者叫做PASV,當客戶端通知伺服器它處於被動模式時才啟用。
在被動方式FTP中,命令連接和數據連接都由客戶端發起,這樣就可以解決從伺服器到客戶端的數據埠的入方向連接被防火牆過濾掉的問題。
當開啟一個 FTP連接時,客戶端打開兩個任意的非特權本地埠(N > 1024和N+1)。第一個埠連接伺服器的21埠,但與主動方式的FTP不同,客戶端不會提交PORT命令並允許伺服器來回連它的數據埠,而是提交 PASV命令。這樣做的結果是伺服器會開啟一個任意的非特權埠(P > 1024),併發送PORT P命令給客戶端。然後客戶端發起從本地埠N+1到伺服器的埠P的連接用來傳送數據。
對於伺服器端的防火牆來說,必須允許下面的通訊才能支持被動方式的FTP:
1. 從任何大於1024的埠到伺服器的21埠(客戶端初始化的連接)
2. 伺服器的21埠到任何大於1024的埠(伺服器響應到客戶端的控制埠的連接)
3. 從任何大於1024埠到伺服器的大於1024埠(客戶端初始化數據連接到伺服器指定的任意埠)
4. 伺服器的大於1024埠到遠程的大於1024的埠(伺服器發送ACK響應和數據到客戶端的數據埠)
主動與被動優缺點
主動FTP對FTP伺服器的管理有利,但對客戶端的管理不利。因為FTP伺服器企圖與客戶端的高位隨機埠建立連接,而這個埠很有可能被客戶端的防火牆阻塞掉。被動FTP對FTP客戶端的管理有利,但對伺服器端的管理不利。因為客戶端要與伺服器端建立兩個連接,其中一個連到一個高位隨機埠,而這個埠很有可能被伺服器端的防火牆阻塞掉。

類型


授權FTP伺服器
授權FTP伺服器只允許該FP伺服器系統上的授權用戶使用。在使用授權FTP伺服器之前必須向系統管理員申請用戶名和密碼,連接此類FTP伺服器時必須輸入用戶名和密碼。
匿名FTP伺服器
匿名FTP伺服器允許任何用戶以匿名賬戶FTP或 anonymous登錄到FTP伺服器,並對授權的文件進行查閱和傳輸。有些FTP伺服器習慣上要求用戶以自己的E-mai地址作為登錄密碼,但這並沒有成為大多數伺服器的標準作法。

傳輸模式


ASCⅢ傳輸模式
假定正在傳輸的文件包含簡單的ASCI碼文本,當文件傳輸時FTP通常會自動地調整文件的內容,以便將文件存儲為另外一台計算機上的ASCI碼文本文件。
二進位傳輸模式
在二進位傳輸中,保存的是文件的二進位位序,以便源文件與目標文件逐位一一對應,從而保證二進位文件的正確傳輸。如果在ASCI方式下傳輸二進位文件,則系統會自動將二進位數據轉譯為ASCI信息。這樣不僅會使傳輸速度變慢,還會損壞數據,從而使文件變得無法使用。所以一般在使用FTP傳輸文件時,通常建議使用二進位傳輸模式。