FTP的鏈接通常有兩種:一種是客戶程和服務器傳輸命令的,另外一種是數據傳送的鏈接。FTP服務程序通常會支兩種不一樣的模式,一種是Port模式,一種是Passive模式(Pasv Mode)。
Port模式:
當客戶端向服務端鏈接後,使用的是Port模式,那麼客戶端會發送一條命令告訴服務端(客戶端在本地打開了一個端口在等着你進行數據鏈接),當服務端收到這個Port命令後就會向客戶端打開的那個端口進行鏈接,這種數據鏈接就生成了。
Pasv模式:
當客戶端C向服務端S鏈接後,服務端S會發信息給客戶端C,這個信息是(服務端S在本地打開了一個端口M,你如今去鏈接我吧),當客戶端C收到這個信息後,就能夠向服務端S的M端口進行鏈接,鏈接成功後,數據鏈接也創建了。
從上面的解釋中,能夠看到兩種模式主要的不一樣是數據鏈接創建的不一樣,對於Port模式,是客戶端C在本地打開一個端口等服務端S去鏈接創建數據鏈接;而Pasv模式就是服務端S打開一個端口等待客戶端C去創建一個數據鏈接。
FTP須要2個端口,一個端口是做爲控制鏈接端口,也就是21這個端口,用於發送指令給服務器以及等待服務器響應;另外一個端口是數據傳輸端口,端口號爲20(僅PORT模式),是用來創建數據傳輸通道的,主要有3個做用:
1.從客戶向服務器發送一個文件。
2.從服務器向客戶發送一個文件。
3.從服務器向客戶發送文件或目錄列表。
注意:全部FTP服務器軟件都支持PORT方式,大部分FTP服務器軟件PORT方式和PASV方式都支持,有些FTP服務器不支持PASV方式都支持,故形成了PASV 模式失敗,正在嘗試 PORT錯誤 或者 數據Sock錯誤。對症下藥,解決的方法其實很簡單――取消PASV模式。安全
2.具體的方法
服務器
1)在ie中如何啓用或者取消PASV模式:
若是要在ie裏啓用或關閉PASV方式,先打開IE,在菜單裏選擇:工具 -> Internet選項 -> 高級,在「使用被動ftp」前面打上鉤或者去掉鉤,不過須要IE6.0以上才支持。
網絡
2)FTP下載工具取消被動模式的方法:
★Cute FTP 3.5英文版:FTP―>Settings―>Options―>Firewall,將「PASV mode」前複選框中的打勾去掉。
★Cute FTP3.5中文版:FTP―>設置―>選項―>防火牆,「PASV方式(A)」前複選框中的打勾去掉。
★Cute FTP4.0中文版:右擊你所創建的ftp站點―>選擇屬性(properties)―>去掉"use PASV mod" 選擇項
★Cute FTP Pro2.0中文版:編輯―>全局設置―>鏈接―>鏈接類型,「PASV/PORT」下拉選項菜單選擇PORT。
★Leap FTP2.7.2:Sites―>Site Manager―>Advanced,將「Use PASV mode」前複選框中的打勾去掉。
★flashfxp: 選項->參數->代理->去掉「使用被動模式」
★flashget: 選項->參數->代理服務器->編輯->將「Use PASV mode」前複選框中的打勾去掉。併發
3.其餘補充
若是你用Serv-U架設FTP,那麼Serv-U默認配置下兩種方式都支持。
若是要關閉PASV方式,打開Serv-U,進入 Domains -> user.dns0755.net -> Settings -> Advanced -> 把「Allow passive mode data transfers」前面的鉤去掉。
在 Serv-U的Local Server -> Settings -> Advanced -> PASV port range裏,填入給PASV模式使用的本地端口範圍,如60000-60020。請把端口範圍限制在20個之內。以後,再在防火牆裏打開這個範圍的端口就能夠了。工具
若是你用Filezilla架設FTP,那麼filezilla默認配置下兩種方式都支持。我在FileZilla Server 設置菜單裏被動模式選項(Passive Mode Settings)選項,進入被動模式設置。 選中啓動被動模式端口範圍的選項,輸入3000~3020端口範圍,相應的端口要在防火牆裏添加放行。性能
4.FileZilla Server網站
下載最新版本,而後雙擊安裝。出現許可協議,選擇「I Agree」贊成協議繼續……
spa
在這一屏,中間的端口號是管理員登陸配置服務器的鏈接端口號,默認爲14147。這個設置還關係到遠程登陸配置。能夠根據本身的狀況修改,固然也能夠在安裝完成以後再修改。
.net
點擊Close結束安裝,以後彈出鏈接服務器的窗口。FileZilla Server支持遠程配置,若是是從遠程進行配置的話,這裏的地址、端口號和口令要跟遠程服務器上面的對應起來。 線程
本例是從本地登陸,密碼正確無誤以後就進入服務器設置頁面。
首先要進行服務器全局參數設置:點「Edit」菜單,選「Settings」
General settings(常規設置):
Listen on Port:監聽端口,其實就是FTP服務器的鏈接端口。
Max.Number of users:容許最大併發鏈接客戶端的數量。
Number of Threads:處理線程。也就是CPU優先級別。數值調得越大優先級越高,通常默認便可。
下面的是超時設置,自上至下分別爲:鏈接超時、傳輸空閒超時、登入超時。單位爲秒。
Welcome message頁面設置客戶端登陸成功之後顯示的Welcome信息。建議不要用軟件默認的,由於任何軟件都不能保證沒有什麼漏洞,若是在這裏暴露軟件名稱的話,一旦這個FTP Server軟件有什麼安全漏洞,別有用心的人知道了服務器軟件的名稱就可能針對性地發起攻擊。因此建議這裏設置的信息不要包含任何服務器資料。
IP Filter(IP過濾器)頁面,設置IP過濾規則,在上面欄目中的IP是被禁止的,下面的是容許的。
Passive mode settings(被動傳輸模式設置):這個頁面要重點關注。若是服務器自己直接擁有公網IP,能夠選軟件默認的「Default」。
假若服務器是在局域網裏面,在一個網關後面,那麼就要選擇第二項「Use the follwoing IP」,而且在下面的輸入欄填寫公網的IP地址;不然,客戶端用PASV被動模式可能沒法鏈接FTP服務器。由於服務器是在內網中,在客戶端使用PASV 模式鏈接服務器的時候,服務器收到鏈接請求以後須要把自身的IP地址告訴客戶端,因爲服務器在內網中,它偵測到的IP地址是內網的(如 192.168.0.5),它把這個IP地址交給客戶端,客戶端天然沒法鏈接。在這裏設置了指定的IP地址後,服務器就會把這個公網合法的IP地址提交給客戶端,這樣才能正常創建鏈接。
若是服務器是動態IP的,那麼能夠選擇下面的「Retrieve external IP address from」,利用FileZilla官方網站免費提供的IP查詢頁面獲取當時的公網合法IP,而後服務器把這個公網合法IP地址提交給客戶端。固然靜態 IP也能夠用這個,只不過沒有必要。
這個設置頁面對服務器位於內網的狀況很是重要。有些FTP服務器端沒有這個設置項目,客戶端就只能用Port主動模式鏈接。固然有些客戶端軟件針對這個問題有專門的設置,如FlashFXP的站點設置中只要選中「被動模式使用站點IP」就能夠了。
對於在局域網中的服務器,若是服務器沒有置於DMZ區,那麼強烈建議選中下面的「Use custom port range」定義PASV端口範圍。因爲PASV模式中,是服務器隨機打開端口,而後把打開的端口號告訴客戶端,讓客戶端鏈接打開的端口。可是由於服務器處於網關後面,若是網關那裏沒有作對應的端口映射,客戶端從外網就沒法鏈接服務器打開的端口,致使PASV模式鏈接失敗。在這裏限定服務器打開的端口範圍,而後到鏈接外網的網關那裏,對服務器的這些端口作端口映射(虛擬服務)。這須要服務器和Internet網關設備配合設置,這樣外網的客戶端才能用 PASV模式鏈接進來。
Security settings(安全設置):這裏的兩個選項關係到可否FXP。軟件默認狀態「Block incoming server-to-server transfers」和「Block outgoing server-to-server transfers」兩項都是選中的,前面那項是禁止連入的服務器對傳,後面是禁止傳出的服務器對傳。也就是說默認狀態不容許FXP,若是須要使用 FXP,那麼就把這兩個項目取消選擇。注意FXP傳輸除了跟這個頁面的設置有關,還跟IP過濾器有關。
Admin Interface setting(管理員界面設定):這個就是登陸配置服務器界面的一些參數。端口號的設置在安裝的時候也出現過。下面兩欄能夠定義容許遠程登陸配置的網絡界面和IP地址。在最下面更改管理員口令。
Logging(日誌):設定是否啓用日誌記錄功能以及日誌文件大小和文件名。
Speed Limits(速度限制):這個是全局參數,默認狀態不限速。能夠選中「Constant Speed Limit of」並填寫限速數值來實現速度限制,下載(傳出)和上傳(傳入)能夠分別設置。還能夠根據時段自定義限速規則——「Use Speed Limit Rules」,好比這臺服務器或者網絡鏈接除了作FTP服務器以外還有別的用途,須要根據時間調度,不能讓FTP傳輸擠佔全部網絡帶寬影響其它的網絡服務;就能夠經過這裏設置。
Filetransfer compression(文件傳輸壓縮設置):MODE Z FTP協議是一種實時壓縮的傳輸協議。在這種模式下,發送方的數據在發出以前先進行壓縮,再送到網絡鏈路中傳輸,接收方將收到數據實時解包,在本地還原重組成原文件。這種模式能夠大幅度減小網絡中的數據流量,提高傳輸效率(速度)。固然對於已經壓縮過的文件,就幾乎沒有效果了。要使用這種傳輸模式,須要服務器端和客戶端都支持MODE Z協議。
勾選「Enable MODE Z support」就能夠啓用本服務器的MODE Z支持功能,這樣,只要客戶端也支持MODE Z就能夠得到它帶來的性能提高。「Minimum allowed compression level」和「Maximum allowed compression level」分別設置最小壓縮率和最大壓縮率。最下面能夠輸入不啓用MODE Z功能的目標IP。
完成這些設置之後,點擊「OK」按鈕保存設置並退出服務器全局設置頁面返回主界面。
下面要進行的是用戶組(Group Settings)設置。在主界面點擊第五個按鈕或者由「Edit」——「Groups」菜單進入。
組設置是爲了便於用戶歸類管理,相同權限的用戶歸屬到同一個組裏面,這樣就不用重複屢次設置每一個用戶的權限等參數,簡化配置和管理工做。點擊右邊的 「Add」按鈕建立新組。
組建立完成之後,點「Shared folders」進入目錄權限設置頁面。點擊中間區域的「Add」按鈕添加目錄。默認狀態添加的第一個目錄即爲該組用戶登陸以後看到的主目錄(Home Directory),主目錄前面有個粗體的「H」標識。目錄列表右側分別是對該目錄的操做權限設置,上面是文件權限設置,下面是目錄權限設置。若是要改變主目錄,只要在列表中選中須要設置爲主目錄的那個,而後點擊「Set as home dir」按鈕便可。
設置好主目錄以後,再點擊「Add」按鈕把其他的目錄依次設置進來就能夠了。不過這裏得注意,若是僅僅把別的目錄添加進去,那麼你用客戶端鏈接以後,會發現除了主目錄和它的子目錄以外,別的目錄都看不見。這是怎麼回事?這裏要說明一個概念——虛擬路徑。所謂虛擬路徑,就是在客戶端看到的目錄結構。因爲一個用戶只能有一個主目錄,別的目錄若是不映射成虛擬目錄的話,客戶端將看不到它。因此只有把除了主目錄以外的其它目錄,虛擬成主目錄的子目錄,這樣在客戶端才能看到。
好比本例,主目錄是D:/Downloads,若是不作虛擬路徑設置,那麼客戶端登陸進來只能看到主目錄裏面的內容,還有一個E:/FTPRoot目錄下面的東西看不到。如何設置虛擬路徑?鼠標右鍵點擊列表中的「E:/FTPRoot」目錄,在彈出的菜單裏面選「Edit aliases」編輯別名;如今要把E:/FTPRoot目錄做爲客戶端主目錄下的FTPRoot目錄,那麼就在彈出的窗口裏面輸入「D: /Downloads/FTPRoot」並點擊「OK」按鈕肯定。注意拼寫規則,路徑的前面部分必須是主目錄的絕對路徑。這樣設置以後,在客戶端就能夠看到一個「FTPRoot」目錄,這個目錄其實就是E:/FTPRoot目錄。
組設置中的「Speed Limits」和「IP Filter」跟全局設置裏面的速度限制和IP過濾器設置方法是同樣的,請參照前面的內容。只不過這個是僅僅針對這個組的用戶生效。而全局設置是對全部的用戶都生效。
設置完畢以後點擊「OK」按鈕回到主界面。
最後一項就是設置用戶(Users)。點擊主界面第四個按鈕或者由「Edit」——「Users」菜單進入。
點擊右邊的「Add」按鈕建立用戶,在「Password」域輸入用戶口令。而後從「Group membership」欄選擇該用戶所屬的組(Group),這樣該用戶將繼承該組的全部屬性/權限,不用再單獨一一設置這些參數了。這也是設置組體現的方便性,在用戶比較多的時候使用組來分類會使得管理工做更加方便、高效。完畢以後點「OK」按鈕保存設置並返回主界面。
固然,也能夠設置一個不屬於任何組的用戶,這樣的話,就得單獨定製該用戶的權限。對於少許特殊用戶,能夠用這種方式設置。
至此,FileZilla Server的基本設置就完成並能夠運行了。
對於初次使用FTP Server軟件的用戶,本文也能夠做爲入門參考。其實全部的FTP Server軟件安裝設置的基本原理都是相似的,掌握了一個以後,別的能夠觸類旁通融會貫通。