有許多用戶FTP連接時報錯,換個電腦或者讓別人測試都能正常連接,小編就此問題提供些個人經驗,供大家參考...
一.什么是ftp中的PASV和PORT模式
FTP的連接一般是有兩個連接的,一個是客戶程和服務器傳輸命令的,另一個是數據傳送的連接。FTP服務程序一般會支兩種不同的模式,一種是Port模式,一種是Passive模式(Pasv Mode),先說說這兩種不同模式連接方式的分別:先假設客戶端為C,服務端為S。
所謂Port模式:
當客戶端C向服務端S連接后,使用的是Port模式,那么客戶端C會發送一條命令告訴服務端S(客戶端C在本地打開了一個端口N在等著你進行數據連接),當服務端S收到這個Port命令后就會向客戶端打開的那個端口N進行連接,這種數據連接就生成了。
當客戶端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模式。
三、具體的方法
1.在ie中如何啟用或者取消PASV模式:
如果要在ie里啟用或關閉PASV方式,先打開IE,在菜單里選擇:工具 -> Internet選項 -> 高級,在“使用被動ftp”前面打上鉤或者去掉鉤,不過需要IE6.0以上才支持。
★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”前復選框中的打勾去掉。
如果你用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個以內。之后,再在防火墻里打開這個范圍的端口就可以了。