有許多用戶FTP連接時報錯,換個電腦或者讓別人測試都能正常連接,小編就此問題提供些個人經(jīng)驗,供大家參考...
一.什么是ftp中的PASV和PORT模式
FTP的連接一般是有兩個連接的,一個是客戶程和服務(wù)器傳輸命令的,另一個是數(shù)據(jù)傳送的連接。FTP服務(wù)程序一般會支兩種不同的模式,一種是Port模式,一種是Passive模式(Pasv Mode),先說說這兩種不同模式連接方式的分別:先假設(shè)客戶端為C,服務(wù)端為S。
所謂Port模式:
當(dāng)客戶端C向服務(wù)端S連接后,使用的是Port模式,那么客戶端C會發(fā)送一條命令告訴服務(wù)端S(客戶端C在本地打開了一個端口N在等著你進行數(shù)據(jù)連接),當(dāng)服務(wù)端S收到這個Port命令后就會向客戶端打開的那個端口N進行連接,這種數(shù)據(jù)連接就生成了。
當(dāng)客戶端C向服務(wù)端S連接后,服務(wù)端S會發(fā)信息給客戶端C,這個信息是(服務(wù)端S在本地打開了一個端口M,你現(xiàn)在去連接我吧),當(dāng)客戶端C收到這個信息后,就可以向服務(wù)端S的M端口進行連接,連接成功后,數(shù)據(jù)連接也建立了。
從上面的解釋中,可以看到兩種模式主要的不同是數(shù)據(jù)連接建立的不同,對于Port模式,是客戶端C在本地打開一個端口等服務(wù)端S去連接建立數(shù)據(jù)連接;而Pasv模式就是服務(wù)端S打開一個端口等待客戶端C去建立一個數(shù)據(jù)連接。
FTP需要2個端口,一個端口是作為控制連接端口,也就是21這個端口,用于發(fā)送指令給服務(wù)器以及等待服務(wù)器響應(yīng);另一個端口是數(shù)據(jù)傳輸端口,端口號為20(僅PORT模式),是用來建立數(shù)據(jù)傳輸通道的,主要有3個作用:
1.從客戶向服務(wù)器發(fā)送一個文件。
2.從服務(wù)器向客戶發(fā)送一個文件。
3.從服務(wù)器向客戶發(fā)送文件或目錄列表。
注意:所有FTP服務(wù)器軟件都支持PORT方式,大部分FTP服務(wù)器軟件PORT方式和PASV方式都支持,有些FTP服務(wù)器不支持PASV方式都支持,故造成了PASV 模式失敗,正在嘗試 PORT錯誤 或者 數(shù)據(jù)Sock錯誤。對癥下藥,解決的方法其實很簡單――取消PASV模式。
三、具體的方法
1.在ie中如何啟用或者取消PASV模式:
如果要在ie里啟用或關(guān)閉PASV方式,先打開IE,在菜單里選擇:工具 -> Internet選項 -> 高級,在“使用被動ftp”前面打上鉤或者去掉鉤,不過需要IE6.0以上才支持。
★Cute FTP 3.5英文版:FTP―>Settings―>Options―>Firewall,將“PASV mode”前復(fù)選框中的打勾去掉。
★Cute FTP3.5中文版:FTP―>設(shè)置―>選項―>防火墻,“PASV方式(A)”前復(fù)選框中的打勾去掉。
★Cute FTP4.0中文版:右擊你所建立的ftp站點―>選擇屬性(properties)―>去掉"use PASV mod" 選擇項
★Cute FTP Pro2.0中文版:編輯―>全局設(shè)置―>連接―>連接類型,“PASV/PORT”下拉選項菜單選擇PORT。
★L(fēng)eap FTP2.7.2:Sites―>Site Manager―>Advanced,將“Use PASV mode”前復(fù)選框中的打勾去掉。
★flashfxp: 選項->參數(shù)->代理->去掉“使用被動模式”
★flashget: 選項->參數(shù)->代理服務(wù)器->編輯->將“Use PASV mode”前復(fù)選框中的打勾去掉。
如果你用Serv-U架設(shè)FTP,那么Serv-U默認(rèn)配置下兩種方式都支持。
如果要關(guān)閉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個以內(nèi)。之后,再在防火墻里打開這個范圍的端口就可以了。