相信很多使用windows服務器的同學們,在開啟了防火牆以後,ftp卻不能正常連接了,這到底是什麼原因造成的呢?今天亦是美網絡就為大家講講ftp傳輸的基本原理以及無法正常連接的解決辦法。
ftp傳輸數據分兩種模式:passive模式(被動模式)與port模式(主動模式)。
先說passive模式吧,也稱為ftp被動模式。當你在客戶端連接服務器的時候,客戶端打開兩個端口X和X+1(其中X大於1024的非特權端口),客戶端端口X向服務器(21端口)發送連接請求,服務器收到該請求後,打開一個隨機端口Y(大於1024的非特權隨機端口),並告訴客戶機讓其來連接,然後客戶端再使用X+1端口來連接服務器的端口Y,這樣客戶端和服務器的連接就算完成了,知道這個連接過程後,在防火牆關閉的情況下,可以正常連接。但是當打開windows防火牆後,除了80、21等常用端口打開外,其他端口都是關閉著的,這時當客戶端向服務器請求時,服務器所打開的端口是隨機的,並且不在防火牆的例外端口之內,所以就會出現無法正常連接ftp的情況。
其次說一下port模式,也稱為ftp主動模式。當客戶端向服務器請求連接的時候,使用自己的一個隨機端口X(大於1024的非特用端口)去連接服務器的21端口,接著客戶端再打開一個X+1開始監聽,並發送一個port X+1的命令給服務端,然後,服務器會用自己的端口(比如21)去連接客戶端發送的端口X+1,這樣就完成了客戶端與服務器的連接。
了解了ftp的主動連接和被動連接兩種模式後,當我們在服務器上打開防火牆後,要確保ftp能正常連接,我們只需要在客戶端使用ftp的port模式連接就可以了,因為port模式不需要服務器打開其他的隨機端口。客戶端ftp使用較多的莫非flashfxp了,我們打開flashfxp,修改它的傳送模式即可,具體步驟,打開flashfxp - 選項 - 參數設置 - 代理,將“使用被動模式”前面的勾去掉即可。