FTP是File Transfer Protocol(文件傳輸協(xié)議)的縮寫,用來在兩臺計(jì)算機(jī)之間互相傳送文件。相比于HTTP,FTP協(xié)議要復(fù)雜得多。復(fù)雜的原因,是因?yàn)?/SPAN>FTP協(xié)議要用到兩個(gè)TCP連接,一個(gè)是命令鏈路,用來在FTP客戶端與服務(wù)器之間傳遞命令;另一個(gè)是數(shù)據(jù)鏈路,用來上傳或下載數(shù)據(jù)。
FTP協(xié)議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。
PORT(主動)方式的連接過程是:客戶端向服務(wù)器的FTP端口(默認(rèn)是21)發(fā)送連接請求,服務(wù)器接受連接,建立一條命令鏈路。當(dāng)需要傳送數(shù)據(jù)時(shí),客戶端在命令鏈路上用PORT命令告訴服務(wù)器:“我打開了XXXX端口,你過來連接我”。于是服務(wù)器從20端口向客戶端的XXXX端口發(fā)送連接請求,建立一條數(shù)據(jù)鏈路來傳送數(shù)據(jù)。
PASV(被動)方式的連接過程是:客戶端向服務(wù)器的FTP端口(默認(rèn)是21)發(fā)送連接請求,服務(wù)器接受連接,建立一條命令鏈路。當(dāng)需要傳送數(shù)據(jù)時(shí),服務(wù)器在命令鏈路上用PASV命令告訴客戶端:“我打開了XXXX端口,你過來連接我”。于是客戶端向服務(wù)器的XXXX端口發(fā)送連接請求,建立一條數(shù)據(jù)鏈路來傳送數(shù)據(jù)。
我來概括一下就是:
主動模式:服務(wù)器向客戶端敲門,然后客戶端開門
被動模式:客戶端向服務(wù)器敲門,然后服務(wù)器開門
所以,如果你是如果通過代理上網(wǎng)的話,就不能用主動模式,因?yàn)榉⻊?wù)器敲的是上網(wǎng)代理服務(wù)器的門,而不是敲客戶端的門
而且有時(shí)候,客戶端也不是輕易就開門的,因?yàn)橛蟹阑饓ψ钃,除非客戶端開放大于1024的高端端口
要用主動模式來下載,請您把下載工具的被動模式(PASV)都不要打勾,用主動模式來下載就OK了,如果在出錯(cuò),那就被動主動相互轉(zhuǎn)換一下
常見的FTP客戶端軟件的PASV方式的關(guān)閉方法
大部分FTP客戶端默認(rèn)使用PASV方式,PASV模式的意式是被動模式。在大部分FTP客戶端的設(shè)置里,常見到的字眼都是“PASV”或“被動模式”。
IE: 工具 -> Internet選項(xiàng) -> 高級 -> “使用被動FTP”(需要IE6.0以上才支持)。
CuteFTP: Edit -> Setting -> Connection -> Firewall -> “PASV Mode”
或 File -> Site Manager,在左邊選中站點(diǎn) -> Edit -> “Use PASV mode”
FlashGet: 工具 -> 選項(xiàng) -> 代理服務(wù)器 -> 直接連接 -> 編輯 -> “PASV模式”
FlashFXP: 選項(xiàng) -> 參數(shù)選擇 -> 代理/防火墻/標(biāo)識 -> “使用被動模式”
或 站點(diǎn)管理 -> 對應(yīng)站點(diǎn) -> 選項(xiàng) -> “使用被動模式”
或 快速連接 -> 切換 -> “使用被動模式”
LeapFTP: Option ->;Preferences -> General->;Proxy->Use Pasv Mode
從上面可以看出,兩種方式的命令鏈路連接方法是一樣的,而數(shù)據(jù)鏈路的建立方法就完全不同。而FTP的復(fù)雜性就在于此