Apache HTTP Server 2.4 版本
描述 | mod_proxy 的 FTP 支援模組 |
---|---|
狀態 | 擴充功能 |
模組識別碼 | proxy_ftp_module |
原始檔 | mod_proxy_ftp.c |
此模組需要mod_proxy
的服務。它提供代理 FTP 網站的支援。請注意,FTP 支援目前僅限於 GET 方法。
因此,若要具備處理 FTP 代理要求的能力,mod_proxy
和 mod_proxy_ftp
必須存在於伺服器中。
在您保護好您的伺服器之前,請勿啟用代理。開放式代理伺服器對您的網路和整體而言都是危險的。
您可能沒有在 proxy 的 mime.types 組態檔中,將該特定的檔案類型定義成 application/octet-stream
。實用的敘述行可以是
application/octet-stream bin dms lha lzh exe class tgz taz
或者您可能比較喜歡使用 ForceType
指令將一切都預設為二進位
ForceType application/octet-stream
在您必須使用 FTP ASCII
傳輸方法下載特定檔案(同時預設傳輸處於 二進制
模式)的罕見情況下,您可以使用 ;type=a
字尾強制 ASCII 傳輸來覆寫 mod_proxy
的預設值。(但是,FTP 目錄清單始終以 ASCII 模式執行。)
目前,在 mod_proxy
中僅支援 FTP 的 GET。您當然可以使用 Apache 代理的 HTTP 上傳(POST 或 PUT)。
FTP URI 相對於登入使用者的主目錄來詮釋。可惜的是,由於瀏覽器詮釋點而非實際將其傳送至 FTP 伺服器,因此您無法使用 /../ 來到達上層目錄。為了解決這個問題,已在 Apache FTP 代理程式中實作所謂的 Squid %2f 駭取方式,這也是其他熱門代理伺服器(例如 Squid Proxy Cache)所使用的解決方案。藉由將 /%2f
加到您要求的路徑之前,您可以讓這類代理將 FTP 起始目錄變更為 /
(而非主目錄)。例如,若要擷回檔案 /etc/motd
,您可以使用下列 URL
ftp://user@host/%2f/etc/motd
若要透過使用者名稱和密碼登入 FTP 伺服器,Apache 會使用不同的策略。若 URL 中同時遺失使用者名稱和密碼,Apache 會對 FTP 伺服器發送匿名登入,即,
使用者:anonymous
密碼:apache-proxy@
這適用於已設定可匿名存取的所有熱門 FTP 伺服器。
對於使用特定使用者名稱的個人登入,您可以將使用者名稱內嵌在 URL 中,例如
ftp://username@host/myfile
若 FTP 伺服器針對給定的使用者名稱詢問密碼(它應該會詢問),那麼 Apache 會回應一個 401
(需要授權)回應,這會造成瀏覽器彈出使用者名稱/密碼對話框。在輸入密碼後,會重新嘗試連線,若成功,則會顯示所要求的資源。這個程序的優點是您的瀏覽器不會以明文顯示密碼(如果您一開始使用了
ftp://username:password@host/myfile
,就會發生這種狀況)。
以這種方式傳輸的密碼在傳輸過程中不會加密。它會在瀏覽器和 Apache 代理伺服器之間以 base64 編碼的明文字串傳輸,以及在 Apache 代理伺服器和 FTP 伺服器之間以純文字傳輸。因此,在透過 HTTP 存取 FTP 伺服器之前(或在透過 FTP 存取您的個人檔案之前!)您應該三思。在使用不安全的頻道時,竊聽者可能會攔截您在傳輸過程中的密碼。
為了能在 FTP 伺服器上瀏覽目錄和下載檔案,Apache 會檢查請求的網址。如果看起來像一個目錄或包含萬用字元("*?[{~"),則會猜測是要清單而不是下載。
你可以停用名稱中有萬用字元的特殊處理。請參閱指令 ProxyFtpListOnWildcard
。
描述 | 定義代理 FTP 清單的字元集 |
---|---|
語法 | ProxyFtpDirCharset 字元集 |
預設值 | ProxyFtpDirCharset ISO-8859-1 |
範圍 | 伺服器設定、虛擬主機、目錄 |
狀態 | 擴充功能 |
模組 | mod_proxy_ftp |
相容性 | Apache 2.2.7 版本以上有提供。在 Apache 2.3.5 中從 mod_proxy 移出。 |
指令 ProxyFtpDirCharset
定義 mod_proxy_ftp
在 HTML 中產生的 FTP 目錄清單中要設定的字元集。
描述 | 在傳送至 FTP 伺服器時,是否讓請求檔名中的萬用字元改為跳脫字元 |
---|---|
語法 | ProxyFtpEscapeWildcards 開啟|關閉 |
預設值 | ProxyFtpEscapeWildcards 開啟 |
範圍 | 伺服器設定、虛擬主機、目錄 |
狀態 | 擴充功能 |
模組 | mod_proxy_ftp |
相容性 | 在 Apache 2.3.3 版本以上有提供 |
指令 ProxyFtpEscapeWildcards
控制請求檔名中的萬用字元("*?[{~")在傳送給 FTP 伺服器前是否會在反斜線前面加跳脫字元。這是預設的行為,但許多 FTP 伺服器不知道跳脫字元,並會嘗試提供傳送給牠們的文字檔名,包括名稱中的反斜線。
若要從不了解萬用字元跳脫的 FTP 伺服器下載名稱中含有萬用字元的檔案,設定為「關閉」。
描述 | 請求檔名中的萬用字元是否會觸發檔案清單 |
---|---|
語法 | ProxyFtpListOnWildcard 開啟|關閉 |
預設值 | ProxyFtpListOnWildcard 開啟 |
範圍 | 伺服器設定、虛擬主機、目錄 |
狀態 | 擴充功能 |
模組 | mod_proxy_ftp |
相容性 | 在 Apache 2.3.3 版本以上有提供 |
指令 ProxyFtpListOnWildcard
控制請求檔名中的萬用字元("*?[{~")是否會導致 mod_proxy_ftp
回傳檔案清單而非下載檔案。預設值(開啟)是會。
若要即使檔名中有萬用字元也能下載檔案,設定為「關閉」。