<-
Apache > HTTP Server > 說明文件 > 版本 2.4 > 模組

Apache 模組 mod_ftp

可用的語言:  en 

說明提供檔案傳輸協定的支援
狀態外部
模組識別ftp_module
原始檔mod_ftp.c
相容性Apache 2.2 及以上版本

摘要

此模組在 Apache HTTP Server 中提供檔案傳輸協定的支援。此模組最初是由 Covalent Technologies, Inc. 開發,並且由他們貢獻給 Apache HTTP Server 專案。

Apache 的 FTP 協定模組可以用來搭配存取控制模組、mod_ssl 和任何動態內容產生器,以提供多功能、可擴充性與安全的 FTP 服務。

進一步的詳細資料、討論和範例可以在 FTP 說明文件 中找到。

指令

相關資訊

top

FTP 指令

說明在此主機上執行 FTP 伺服器
語法FTP on|off
預設FTP off
內容伺服器設定、虛擬主機
狀態外部
模組mod_ftp

您必須定義一個 Listen 指令來監聽 FTP 請求。

此指令並非從全局設定檔案繼承。
top

FTPActiveRange 指令

說明伺服器用於連線到用戶端埠號
語法FTPActiveRange 最小值 [最大值]
預設短暫的高位元組埠號
內容伺服器設定、虛擬主機
狀態外部
模組mod_ftp

此指令定義 mod_ftp 在建立與用戶端之間主動連線時將使用的埠號。它接受一個或兩個參數。如果只有一個參數,伺服器將始終使用該埠號。如果給了兩個參數,伺服器將把它們當作要使用的埠號範圍處理。

使用足夠的範圍來滿足所有用戶端請求!在用戶端發出 PORTEPRT 請求後發出資料通道請求的時間點與伺服器連線到用戶端的時間點之間,原始埠號可能對任何其他用戶端不可用。
Windows 允許任何程序存取特權埠號。但是,要在 unix 平台上將 FTPActiveRange 分配到 1024 以下,mod_ftp 需要 unix 域套接字,並且會建立一個額外的 httpd 程序來為 httpd 子工作程序提供這些已綁定、低位元組埠號。

FTPActiveRange 20

強制伺服器使用 ftp-data 範例慣例

FTPActiveRange 5050

強制伺服器使用埠號 5050

FTPActiveRange 5050 5080

允許伺服器使用 5050 到 5080 之間的任何埠號,含這些埠號。

top

FTPBannerMessage 指令

說明設定初始登入訊息
語法FTPBannerMessage 訊息|檔案:/路徑/到/檔案
預設
內容伺服器設定、虛擬主機
狀態外部
模組mod_ftp

此指令設定在與客戶端進行初始連線時向客戶端顯示的訊息。它可以是字串,或檔案路徑。該訊息可以包含許多元字元

%T當地時間(格式為 週一 四月 29 20:36:48 2002
%C目前工作目錄
%h遠端主機
%L當地主機
%E伺服器管理員(由 ServerAdmin 給定)
%a遠端 IP 位址
%A當地 IP 位址
%u遠端用戶
%f傳輸的檔案數量
%t下載的所有位元組
%x資料傳輸次數
%b與連線相關的總流量(含控制器和資料)
top

FTPDataBlockSize 指令

說明控制通道測試之間的位元組區塊大小
語法FTPDataBlockSize 位元組
預設FTPDataBlockSize 48000
內容伺服器設定、虛擬主機
狀態外部
模組mod_ftp

當 mod_ftp 透過作業系統傳輸資料時,無法監視控制通道中的 ABOR 訊號。FTPDataBlockSize 會切割傳輸;在每個區塊間,mod_ftp 會檢查控制通道中是否有待處理的要求,或檢查 Socket 是否可以使用來傳送更多資料,然後再繼續下一個區塊。根據預期的頻寬,將此值設定為一個合理的視窗時間,在這個時間內,伺服器應該可以回應控制通道。

top

FTPDirUmask 指令

說明設定建立目錄的 umask
語法FTPDirUmask umask
預設FTPDirUmask 022
內容伺服器設定,虛擬主機,目錄,.htaccess
覆寫FileInfo
狀態外部
模組mod_ftp

此指令設定目錄建立存取權限的掩碼。預設值為 022,這會讓擁有者擁有完整的存取權限,並停用群組及其他使用者的寫入存取權限。

此指令不支援 Windows。
top

FTPDocRootEnv 指令

說明根據提供的環境變數(例如,每個使用者的 LDAP 屬性)設定 DocumentRoot
語法FTPDocRootEnv envvar
預設
內容伺服器設定、虛擬主機
狀態外部
模組mod_ftp

如果環境變數已定義,此指令會讓 FTP 使用 envvar 環境變數的值,來取代預設的 DocumentRootenvvar 變數必須包含完整的路徑檔案,例如,在 Unix 上為 /some/path,在 Windows 上為 d:/some/path

這可以與任何認證模組搭配使用,此類模組會根據登入使用者或其他條件設定環境變數的值(類似於 mod_envmod_setenvif),以依每個使用者為基礎變更 FTP 的 Document Root。

此指令並非從全局設定檔案繼承。
top

FTPEPSVIgnoreFamily 指令

說明強制 EPSV 忽略要求的 IP 系列(IPv4 與 IPv6)
語法FTPEPSVIgnoreFamily On
預設FTPEPSVIgnoreFamily Off
內容伺服器設定、虛擬主機
狀態外部
模組mod_ftp

此指令允許用戶端 EPSV 要求繫結到本機地址,並忽略用戶端要求的 IPv4 與 IPv6,以解決 NAT 問題(此問題會顯示不同的系列)。當 FTP 伺服器位於防火牆之後時,您可能會覺得這個功能很有用。

top

FTPExitMessage 指令

說明設定登出訊息
語法FTPExitMessage message|file:/path/to/file
預設
內容伺服器設定、虛擬主機
狀態外部
模組mod_ftp

此指令會設定在斷線時顯示給用戶端的 訊息。這可能是字串或檔案路徑。這個訊息可以包含各種元字元(請參閱 FTPBannerMessage)。

top

FTPHomeDir 指令

說明設定包含使用者首頁目錄的目錄路徑
語法FTPHomeDir /directory
預設
內容伺服器設定、虛擬主機
狀態外部
模組mod_ftp

此指令定義使用者主目錄的位置。此目錄位置必須指定為絕對路徑,但實際上是以伺服器中設定的 DocumentRoot 為基準。例如,FTPHomeDir /home 將會讓 Apache FTP 伺服器在目錄 DocumentRoot/home/使用者名稱 中尋找使用者的主目錄 (其中 使用者名稱 為使用者的登入名稱)。

如果已經指定 FTPHomeDir,但使用者主目錄不存在,伺服器會記錄錯誤,且使用者會登入至根目錄 ("/")。如果您希望自動建立主目錄,請參閱 FTPOptions 指令中的 CreateHomeDirs 選項。

此指令並非從全局設定檔案繼承。
top

FTPImplicitSSL 指令

說明內嵌使用 SSL
語法FTPImplicitSSL on|off
預設FTPImplicitSSL off
內容伺服器設定、虛擬主機
狀態外部
模組mod_ftp

此指令決定與使用者建立連線時,控制連線的安全性。當設定為 開啟,會要求使用者使用 SSL 連線。當設定為 關閉,會要求使用者以不安全的方式連線,然後發出 AUTH 指令以開始安全連線。

此指令並非從全局設定檔案繼承。
top

FTPJailUser 指令

說明使用者無法離開其主目錄
語法FTPJailUser on|off
預設FTPJailUser off
內容伺服器設定、虛擬主機
狀態外部
模組mod_ftp

此指令將使用者限制於登入時所放置的目錄樹中。使用者可以存取其預設目錄下的任何子目錄,但無法存取上層目錄或任何其他相關目錄。

如果未使用 FTPHomeDir 指令,則 FTPJailUser 無效。這項指令的組合對於限制使用者在您的檔案系統中能瀏覽的位置非常有力。

此指令並非從全局設定檔案繼承。
top

FTPLimitDBFile 指令

說明設定登入限制資料庫檔案的位置
語法FTPLimitDBFile 檔案路徑
預設FTPLimitDBFile logs/ftplogins
內容伺服器設定
狀態外部
模組mod_ftp

為提供 FTPLimitLoginUserFTPLimitLoginServerFTPLimitLoginIP 功能,mod_ftp 會使用一個小型 DBM 檔案來儲存登入資料。此指令決定該資料庫檔案的檔案名稱路徑。如果使用任何 FTPLimit 指令,此指令必須為此 DBM 指定一個檔案名稱,並讓伺服器可以寫入。

FTPLimitDBFile logs/ftplogins

top

FTPLimitLoginIP 指令

說明設定每個 IP 位址同時可登入的最大連線數目
語法
預設FTPLimitLoginIP 0 (無限制)
內容伺服器設定、虛擬主機
狀態外部
模組mod_ftp

此指令容許管理員限制同時/並發 FTP 登入的總數。例如,如果設為 10,來自相同 IP 位址的 FTP 登入數將不得超過 10。預設值為 0(不限)。

top

FTPLimitLoginServer 指令

說明設定每個伺服器同時登入的最大數目
語法FTPLimitLoginServer 數字
預設FTPLimitLoginServer 0(不限)
內容伺服器設定
狀態外部
模組mod_ftp

此指令容許管理員限制同時/並發 FTP 登入的總數。例如,如果設為 100,則同一虛擬主機的 FTP 登入數將不得超過 100。預設值為 0(不限)。

top

FTPLimitLoginUser 指令

說明設定每個使用者的同時登入的最大數目
語法FTPLimitLoginUser 數字
預設FTPLimitLoginUser 0(不限)
內容伺服器設定
狀態外部
模組mod_ftp

此指令容許管理員限制個別 FTP 使用者的同時/並發登入數目。例如,如果設為 3,則每個 FTP 帳戶將不得有超過 3 個同時登入(包括訪客/匿名帳戶)。預設值為 0(不限)。

top

FTPLowPortSock 指令

說明用於傳遞低編號原始連接埠要求的 Unix 網域套接字的檔名前置字元
語法FTPLowPortSock 路徑名稱
預設FTPLowPortSock logs/ftp-lowportd-sock
內容伺服器設定
狀態外部
模組mod_ftp

此指令設定套接字的檔名前置字元,用於與 CGI 守護程序通訊,將會附加與伺服器處理程序識別碼相應的延伸模組。套接字會使用啟動 Apache 使用者的權限建立(通常是 root)。為維護與 CGI 腳本通訊的安全性,相當重要的是沒有其他使用者有權在套接字所在的目錄中寫入。

範例

FTPLowPortSock /var/run/cgid.sock

top

FTPMaxLoginAttempts 指令

說明最大登入嘗試次數
語法FTPMaxLoginAttempts 次數
預設FTPMaxLoginAttempts 3
內容伺服器設定、虛擬主機
狀態外部
模組mod_ftp

此指令控制允許登入的失敗嘗試次數,在此之後將斷開連線並記錄失敗嘗試。

top

FTPOptions 指令

說明設定此伺服器的選項
語法FTPOptions 選項1 [選項2] ...
預設
內容伺服器設定、虛擬主機
狀態外部
模組mod_ftp

此指令設定每個伺服器的選項。

目前的選項

AllowProxyPASV

此選項允許連接伺服器資料頻道,當它來自於 IP 位址、而不是控制頻道用戶端的 IP。它影響到 PASVEPSV 資料連接。由於代理端 FTP 極少使用,且被認為潛在不安全,因此應謹慎使用此指令。

AllowProxyPORT

此選項允許伺服器建立資料頻道連接至 IP 位址、而不是控制頻道用戶端的IP。它影響到 PORTEPRT 資料連接。由於代理端 FTP 極少使用,且被認為潛在不安全,因此應謹慎使用此指令。

CheckMaxClients

此選項在伺服器已滿時拒絕用戶端登入。如果它未啟用,用戶端將在接受佇列等待,直到另一位用戶端斷開連線為止。

CreateHomeDirs

此選項會讓伺服器自動建立一個家目錄,位置由 FTPHomeDir 指令指定。如果未指定 FTPHomeDir 指令,此選項就不會生效。

不建議在匿名網站上設定此選項。這是因為每個獨特用戶(通常以其電子郵件位址辨識)登入伺服器時,將會建立一個目錄。

此選項只有在 FTPHomeDir 目錄可讓 Apache HTTP Server 的處理序擁有者存取時才會生效,通常在 UNIX 系統上是使用者 nobody

LISTisNLST

此選項會讓伺服器在收到 LIST 要求或 NLST 要求時,顯示相同的輸出。與 NLSTisLIST 不同的是,輸出是不包含詳細資料的檔案清單。如果 -l 選項傳遞至 LIST要求,則將提供詳細資料,無論此選項是否設定。

NLSTisLIST

此選項會讓伺服器在收到 LIST 要求或 NLST 要求時,顯示相同的輸出。與 NLSTShowDirs 一樣,此選項用於對 lsdir 指令傳送不同要求的 FTP 用戶端。

設定此選項將導致要求多個檔案的指令失敗,而且應謹慎使用。

NLSTShowDirs

此選項會讓伺服器在收到 NLST 要求時顯示目錄以及檔案。一些 FTP 用戶端在使用者發出 lsdir 指令時傳送 NLST 要求。由於預設回應僅顯示檔案,因此使用者可能會感到困惑。

設定此選項將導致要求多個檔案的指令失敗,而且應謹慎使用。

NoUTF8Feature

預設情況下,mod_ftp 會在回應 FEAT 指令時宣告 UTF8。這可確保用戶端曉得他們可以用 8 位元組檔名(而不是 7 位元組 ASCII),建議使用 UTF-8 字元集。這個旗標只能在全域內容中使用,會停用所有主機的這個預設行為,從 FEAT 伺服器回應中略過 UTF8

RemoveUserGroup

這個選項會造成伺服器列印目錄清單的使用者身分識別碼 (UID) 和群組身分識別碼 (GID),而不用使用者名稱和群組名稱。它對 Windows 系統沒有作用。

RequireSSL

這個選項要求用戶端在傳送任何密碼資訊前,必須發布 AUTH 指令,以轉換為 SSL。這大部分就像隱性 SSL,其會強迫用戶端使用 SSL 傳送密碼資訊。兩者間的差異在於,使用 RequireSSL 選項時,會允許用戶端在沒有 SSL 的情況下連線,但接著會在傳送使用者名稱和密碼前發布 AUTH SSL 指令。

ShowUnAuthorizedFiles

當伺服器收到 LIST 或類似的 NLST 指令時,這個選項會造成伺服器顯示使用者沒有權限擷取的檔案和使用者沒有權限進入的目錄(cd 會失敗)。接著這些指令會像大部分標準 FTP 伺服器一樣動作,使用者會看到所有檔案和目錄清單,即使是他們沒有權限存取的也一樣。

StripHostname

當使用者輸入 USER {user@hostname} 指令時,從提供的名稱移除「@hostname」文字,然後再呈現「user」給驗證模組。最常搭配下列 VirtualHostByUser 選項使用。

VirtualHostByUser

當使用者輸入 USER {user@hostname} 指令時,從提供的名稱中,根據「hostname」文字選取一個 VirtualHost。必須適當地設定 NameVirtualHost 以符合這些主機。如果沒有已命名的虛擬主機根據 ServerName 或其任一 ServerAlias 相符,則登入會根據 IP 落入第一個相符的 VirtualHost,就像 HTTP 處理未相符的 Host: 標頭一樣。

top

FTPPASVaddr 指令

說明設定 PASV 資料通道的顯式伺服器 IP 位址
語法FTPPASVAddr IP 位址
預設控制通道連線的伺服器實際 IP 位址
內容伺服器設定、虛擬主機
狀態外部
模組mod_ftp

此指令允許您指定一個不同的 IP 位址,在回應 PASV 要求時提供給用戶端。它對伺服器用於監聽的 IP 位址沒有影響,請使用 FTPPASVbindaddr 來影響實際資料連線的 IP 位址。

當 FTP 伺服器在防火牆後面時可能會用到它。它不會影響 EPSV 要求。

此指令並非從全局設定檔案繼承。
top

FTPPASVbindaddr 指令

說明設定並繫結資料頻道的允許 PASV 伺服器 IP 位址
語法FTPPASVbindaddr IP 位址
預設指定的 FTPPASVaddr,或是在它不存在時,控制頻道連線的伺服器的實際 IP 位址
內容伺服器設定、虛擬主機
狀態外部
模組mod_ftp

這個指令類似於 FTPPASVaddr 指令,除了 Apache FTP 伺服器會嘗試繫結到指定的 IP 位址,而且請注意任何 FTPPASVaddr 指令會持續覆寫提供給客戶端的位址。

當 FTP 伺服器在防火牆後面時可能會用到它。它不會影響 EPSV 要求。

此指令並非從全局設定檔案繼承。
top

FTPPASVrange 指令

說明設定允許的被動連接埠範圍
語法FTPPASVrange 數字 數字
預設短暫的高位元組埠號
內容伺服器設定、虛擬主機
狀態外部
模組mod_ftp

這個指令定義要使用於所有被動連線的連接埠範圍(從 數字數字,包含兩端),包括 PASVEPSV 要求。這個指令設計為用於只想要在防火牆上開啟特定範圍的連接埠的環境。

使用足夠的範圍來滿足所有客戶端要求!在伺服器回答 PASVEPSV 要求時,與客戶端連線到指示連接埠的時間點之間,這個特定連接埠對任何其他客戶端來說都是無法使用的。
top

FTPReadmeMessage 指令

說明設定每個目錄的 Readme 檔案
語法FTPReadmeMessage 訊息|檔案:/路徑/到/檔案
預設
內容伺服器設定,虛擬主機,目錄,.htaccess
覆寫任意
狀態外部
模組mod_ftp

這個指令設定在進入新目錄時顯示給客戶端的 訊息。這個訊息可以是字串,或檔案路徑。訊息可以包含各種特殊字元(請參閱 FTPBannerMessage)。

當這個指令放在 <VirtualHost> 儲存區中時,README 訊息會套用至所有目錄。當它用於 <Directory> 儲存區中,或放在 .htaccess 檔案中時,只有那個目錄會繼承 README 訊息。

為目錄設定 README 訊息也會覆寫任何全域 README 訊息。

top

FTPTimeoutData 指令

說明資料傳輸期間允許的閒置時間
語法FTPTimeoutData 時間
預設FTPTimeoutData 300
內容伺服器設定、虛擬主機
狀態外部
模組mod_ftp

這個指令設定伺服器在資料傳輸期間要等待的 時間(單位為秒)。如果在此時間內未將資料傳送到客戶端,則會關閉資料連線。

top

FTPTimeoutIdle 指令

說明FTP 會話期間允許的閒置時間
語法FTPTimeoutIdle 時間
預設FTPTimeoutIdle 600
內容伺服器設定、虛擬主機
狀態外部
模組mod_ftp

此指令設定客戶端發送指令之間允許的 時間 秒數。如果在這個時間內未收到任何指令,使用者會斷線。

top

FTPTimeoutLogin 指令

說明登入時允許的閒置時間
語法FTPTimeoutLogin 時間
預設FTPTimeoutLogin 60
內容伺服器設定、虛擬主機
狀態外部
模組mod_ftp

此指令設定使用者傳送使用者名稱給伺服器時允許的 時間 秒數。如果在這個時間內未收到使用者名稱,使用者會斷線。

top

FTPUmask 指令

說明設定建立檔案的 umask
語法FTPUmask umask
預設FTPUmask 022
內容伺服器設定,虛擬主機,目錄,.htaccess
覆寫FileInfo
狀態外部
模組mod_ftp

此指令設定建立檔案存取權限遮罩。預設值為 022,會給予擁有者完整的存取權限並取消群組與其他使用者的寫入權限。

此指令不支援 Windows。

可用的語言:  en 

top

留言

注意
此處並非問答區段。置於此處的評論應著重於改善文件或伺服器的建議,並且我們的管理員可能會再次予以移除,無論其是已實作或被視為無效/離題。關於如何管理 Apache HTTP Server 的問題應導向我們的 IRC 頻道,#httpd,在 Freenode 上,或傳送至我們的 郵件列表