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