綠色資源網:您身邊最放心的安全下載站! 最新軟件|熱門排行|軟件分類|軟件專題|論壇轉帖|廠商大全

綠色資源網

技術教程
您的位置:首頁服務器類Ftp服務器 → 用LINUX架設FTP服務器

用LINUX架設FTP服務器

我要評論 2009/04/09 21:27:34 來源:綠色資源網 編輯:level [ ] 評論:0 點擊:607次

以前自己弄的東西,現在帖出來,希望對大家有點用:)

1.1 什么是FTP:文件傳輸協議原理

1.1.1 命令選擇

1.1.2 命令格式

1.2 wu-Ftpd的安裝

1.3 讓FTP服務器運轉起來

1.4 配置文件的設置

1.4.1 /etc/ftpaccess的設置

1.4.2 /etc/ftpusers和/etc/ftphosts的設置

1.4.3 /etc/ftpconversions設置

1.4.1 wu-ftp的相關程序

1.5 開設只能FTP的帳戶

1.6 設置虛擬FTP主機

什么是FTP:文件傳輸協議原理

互聯網文件傳輸協議(File Transfer Protocol ,FTP) 標準是在RFC959說明的。該協議定義了一個從遠程計算機系統和本地計算機系統之間傳輸文件的一個標準。一般來說,傳輸文件的用戶需要先經過認證以后才能登錄網站,然后方能訪問在遠程服務器的文件。而大多數的FTP服務器往往提供一個GUEST的公共帳戶來允許沒有遠程服務器的用戶可以訪問該FTP服務器。

一個FTP會話通常包括五個軟件元素的交互。

用戶接口 提供了一個用戶接口并使用客戶端協議解釋器的服務

客戶 PI 客戶協議解釋器,其項遠程服務器協議機發(fā)送命令并且驅動客戶數據傳輸過程

服務器PI 服務器協議解釋器,響應客戶協議機發(fā)出的命令并驅動服務器端數據傳輸過程

客戶 DTP 客戶數據傳輸過程,其負責完成和服務器數據傳輸過程及客戶端本地文件系統的通信

服務DTP 服務器數據傳輸過程,其負責完成和客戶數據傳輸過程及服務器端文件系統的通信

在RFC 959中,一般使用用戶這個名詞來指代客戶。RFC 959定義了客戶PI和服務器PI交互的方式和規(guī)范。用戶接口與PI和DTP交互的機理都并不是協議標準的一部分。PI和DTP往往通常是在同一個程序模塊中實現的。

在FTP會話中,一共會存在有兩個獨立的網絡連接,一個是由兩端的PI使用的,另一個是由兩端的DTP使用的。PI之間的連接一般被稱作控制連接(control connection),DTP之間的連接被稱做數據連接(data connection)

使用TCP服務的控制和數據連接

通常情況下,FTO服務器監(jiān)聽端口號21來等待控制連接建立請求。而數據連接端口號的選擇依賴于控制連接上命令。通常是客戶發(fā)送一個控制消息來指定客戶監(jiān)聽并等待服務器端發(fā)送數據連接建立請求的端口號。

對數據傳輸和控制命令傳輸來使用不同的獨立連接有如下優(yōu)點:兩個連接可以選擇不同的合適服務質量,如:對控制連接來說高需要更小的延遲時間,對數據連接來說需要更大的數據吞吐量;而且可以避免實現數據流中的命令的通明性及逃逸。

當傳輸建立時,總是由客戶端首先發(fā)起。然而客戶和服務器都可能是數據發(fā)送者。除了傳輸用戶請求下載文件,數據傳輸過程同樣在客戶端請求列服務器端目錄結構時建立。

1.1.1 命令選擇

當一個傳輸建立時,一般通常需要指定四個方面的屬性:

文件類型

該屬性指定如何將文件的數據匹配成適于傳輸的格式,一共有四種可能的選擇:

ASCII文件類型

在發(fā)送端,文件從本地文本文件格式轉換為 NVT ASCII格式,每行結束有一個CR/LF對來標識。 在接收端,再被轉換為本地的文本格式。

這說明了為什么Unix主機之間傳輸文本文件為何傳輸的數據量要大于文件的實際大小。若傳輸一段端或傳輸兩端都不使用ASCII文本編碼,則是應該由數據傳輸過程來實現本地編碼和NVT ASCII 編碼之間的轉換。

EBCDIC文件類型

類似于ASCII,區(qū)別僅僅上使用EBCDIC字符編碼

圖象 (或二進制)文件類型

文件以本地傳輸內容傳輸,在遠端以同本地完全相同的內容存儲。

本地文件系統

用在字節(jié)大小不是8位的環(huán)境下。沒字節(jié)位數由發(fā)送者指定。

在實際應用中,只有ASCII和圖象格式使用的較多。

格式控制

該屬性是和將文本文件最后傳送到打印設備相關的,其中有多種方式來實現將垂直格式信息編碼到文件中,包括指示一個新頁開始的方式。有如下方式可供選擇:

無須打印格式控制,這是缺省值

Telnet打印控制,在telnet協議中定義的控制字符包含在數據流中。.

Fortran打印控制,

該屬性在實際中很少使用。

結構

文件可以擁有內部結構,在傳輸中該結構被保留。由數據傳輸過程來負責在傳輸中的結構及本地結構之間相互匹配,有三種可能性:

文件結構

這實際上意味著文件被看作沒有內部結構的連續(xù)的字節(jié)流。

記錄結構

文件是有一系列記錄組成的結構。這只適用于文本文件。

頁面結構

也可以稱做塊結構。每一頁都伴隨一個頁號來傳輸,從而以順序的方式來完成傳輸。

頁面結構很少在實際中遇到。記錄結構也不是很常見。對于文本文件使用ASCII文件類型可以獲得相同的效果。

傳輸模式

該屬性可以取三個不同的值:

流模式

文件的以字節(jié)流的方式傳輸。

塊模式

文件以一個塊連接一個塊的方式傳輸,每個塊的開頭都有一個頭。

壓縮模式

一個簡單的運程長度壓縮編碼被應用,來壓縮連續(xù)的相同的字節(jié)。

實際中,一般只有流模式被使用。而壓縮一般通過使用各種其他的工具程序來獲得。

當一次傳輸被建立,客戶端一般指定一個或多個前面說明的屬性。若服務器端不能支持某個選項,服務器將用一個錯誤信息來響應客戶端,并不具有協商機制。

FTP提供了充足的命令來使用戶和遠程建立連接并訪問遠程文件系統。

1.1.2 命令格式

命令以NVT ASCII串的格式被傳輸。每個命令以三個或四個大寫的NVT ASCII字符開始,后面帶有選項參數和一個CR/LF對來標識命令結束

應答由三個NVT ASCII數字及一個選項消息組成。

一個長的應答也許會有多個消息組成,第一個消息的三個數字后帶有一個破折號,最后的消息不帶有破折號。中間的消息無須攜帶三個數字,但是如果帶了三個數字,則也需要破折號。

下面是所有的命令的列表。帶有星號的命令一般很少使用,所以往往在具體實現中不支持。

String Meaning

ABOR 放棄傳輸

*ACCT 某些系統將帳號和用戶與文件系統相關聯

*ALLO 為即將傳送的文件分配空間。后面攜帶的參數來確定字節(jié)數

*APPE 將文件附加到已經存在的文件后面

CDUP 在遠程系統上將當前目錄切換到上級父目錄

CWD 改變遠程系統的工作目錄

DELE 刪除遠程系統的文件

HELP 讀取服務器的幫助信息,如:支持的命令的列表

LIST 在一個新建立的數據連接上發(fā)送當前工作目錄下的文件名列表

MKD 創(chuàng)建目錄

MODE 指定傳輸模式,可攜帶的參數是:S、B或 C.

NLST 在一個新建立的數據連接上發(fā)送一個當前目錄下的“完全”的目錄列表

NOOP 空操作,防止連接斷掉

PASS 提供一個用戶登錄密碼,必須立即跟隨在USER命令后

*PASV 指定服務器數據傳輸過程監(jiān)聽等待客戶端的數據連接連接建立請求

PORT 指定客戶端監(jiān)聽等待服務器端建立的連接的端口號

PWD 顯示服務器端的當前工作目錄名

QUIT 退出登錄并終止連接

*REIN 重新初始化,退出登錄但是并不斷開連接,后面必須隨后發(fā)出一個新的USER命令

*REST 從服務器的一個標識處重新開始傳輸

RETR 從遠程系統取回一個文件

RMD 刪除一個目錄

*RNFR 指定要被命名的文件的老的路徑名,隨后必須是一個RNTO命令

*RNTO 指定要被命名的文件的新的路徑名

*SITE 站點特有的服務器提供的服務

*SMNT 結構加載,提供一個文件系統結構的遠程系統路徑名

*STAT 狀態(tài)信息

STOR 上載一個文件到服務器上,若文件已經存在則覆蓋

*STOU 上載一個文件到服務器上,不覆蓋已經存在的文件

STRU 指定文件結構,參數可以是F、R或P.

*SYST 報告遠程系統的操作系統類型

TYPE 指定文件類型,參數可以是A、E、I、L只有TYPE A和TYPE I常用

控制連接命令應答有如下形式:

Type Description

1yz 主動初步應答,在發(fā)送另一個命令以前等待另一個應答

2yz 主動最后應答,最后一個命令成功結束

3yz 主動中間應答,必須再發(fā)送一個命令

4yz 暫時被動應答,要求的動作當時不能完成,但可以重試

5yz 永久被動應答,要求的動作不能完成,不應該重試

"y"數字編碼進一步的信息

Digit Meaning

0 語法錯誤

1 信息

2 連接狀態(tài)

3 認證和記帳

4 保留

5 File s文件系統狀態(tài)

下面是一些典型的消息:

Number Meaning

125 數據連接打開,傳輸開始

200 命令OK

331 用戶名OK 需要輸入密碼

425 不能打開數據連接

452 錯誤寫文件

500 語法錯誤-不可識別的命

具體的詳細情況可以參見RFC

wu-Ftpd的官方權威站點地址是:http://www.wu-ftpd.org/。

1.2 wu-Ftpd的安裝

當前,Linux環(huán)境下有許多ftp服務器軟件可供選擇,但是目前最常見的仍然是wu-Ftpd服務器。這里主要討論該軟件的安裝和配置。

一般來說,在安裝了linux時,缺省都會自動安裝wu-ftpd服務器,但是有時候為了某種需要也需要自己親自重新安裝該服務器軟件。安裝wu-Ftpd有兩方式,一種是安裝rpm形式的發(fā)布包;一種是自己動手去編譯生成Ftp服務器。

rpm包可以在http://rpmfind.net/linux/RPM/WByName.html處下載得到,以rpm包方式安裝非常簡單,只需要在按下面的簡單的幾個步驟就可以完成,假設下載得到的rpm包存放在/tmp目錄下:

#cd /tmp

#rpm -ivh wu-f

關鍵詞:LINUX,FTP服務器

閱讀本文后您有什么感想? 已有 人給出評價!

  • 1 歡迎喜歡
  • 1 白癡
  • 1 拜托
  • 1 哇
  • 3 加油
  • 1 鄙視