FTP基礎(chǔ)知識(shí)
??FTP是File Transfer Protocol(文件傳輸協(xié)議)的縮寫(xiě),用來(lái)在兩臺(tái)計(jì)算機(jī)之間互相傳送文件。相比于HTTP,F(xiàn)TP協(xié)議要復(fù)雜得多。復(fù)雜的原因,是因?yàn)镕TP協(xié)議要用到兩個(gè)TCP連接,一個(gè)是命令鏈路,用來(lái)在FTP客戶(hù)端與服務(wù)器之間傳遞命令;另一個(gè)是數(shù)據(jù)鏈路,用來(lái)上傳或下載數(shù)據(jù)。
? ? FTP協(xié)議有兩種工作方式:PORT方式和PASV方式,中文意思為主動(dòng)式和被動(dòng)式。
? ? PORT(主動(dòng))方式的連接過(guò)程是:客戶(hù)端向服務(wù)器的FTP端口(默認(rèn)是21)發(fā)送連接請(qǐng)求,服務(wù)器接受連接,建立一條命令鏈路。當(dāng)需要傳送數(shù)據(jù)時(shí),客戶(hù)端在命令鏈路上用PORT命令告訴服務(wù)器:“我打開(kāi)了XXXX端口,你過(guò)來(lái)連接我”。于是服務(wù)器從20端口向客戶(hù)端的XXXX端口發(fā)送連接請(qǐng)求,建立一條數(shù)據(jù)鏈路來(lái)傳送數(shù)據(jù)。
? ? PASV(被動(dòng))方式的連接過(guò)程是:客戶(hù)端向服務(wù)器的FTP端口(默認(rèn)是21)發(fā)送連接請(qǐng)求,服務(wù)器接受連接,建立一條命令鏈路。當(dāng)需要傳送數(shù)據(jù)時(shí),服務(wù)器在命令鏈路上用PASV命令告訴客戶(hù)端:“我打開(kāi)了XXXX端口,你過(guò)來(lái)連接我”。于是客戶(hù)端向服務(wù)器的XXXX端口發(fā)送連接請(qǐng)求,建立一條數(shù)據(jù)鏈路來(lái)傳送數(shù)據(jù)。
? ? 從上面可以看出,兩種方式的命令鏈路連接方法是一樣的,而數(shù)據(jù)鏈路的建立方法就完全不同。而FTP的復(fù)雜性就在于此。
FTP客戶(hù)端的注意事項(xiàng)
? ? 請(qǐng)注意:選擇用PASV方式還是PORT方式登錄FTP服務(wù)器,選擇權(quán)在FTP客戶(hù)端。
一、客戶(hù)端只有內(nèi)網(wǎng)IP,沒(méi)有公網(wǎng)IP
? ? 從上面的FTP基礎(chǔ)知識(shí)可知,如果用PORT方式,因?yàn)榭蛻?hù)端沒(méi)有公網(wǎng)IP,F(xiàn)TP將無(wú)法連接客戶(hù)端建立數(shù)據(jù)鏈路。因此,在這種情況下,客戶(hù)端必須要用PASV方式,才能連接FTP服務(wù)器。大部分人登錄不上,典型的錯(cuò)誤原因就是因?yàn)榭蛻?hù)端沒(méi)有公網(wǎng)IP,但用了IE作為FTP客戶(hù)端來(lái)登錄(IE默認(rèn)使用PORT方式)。
二、客戶(hù)端有公網(wǎng)IP,但安裝了防火墻
? ? 如果用PASV方式登錄FTP服務(wù)器,因?yàn)榻?shù)據(jù)鏈路的時(shí)候,是由客戶(hù)端向服務(wù)器發(fā)送連接請(qǐng)求,沒(méi)有問(wèn)題。反過(guò)來(lái),如果用PORT方式登錄FTP服務(wù)器,因?yàn)榻?shù)據(jù)鏈路的時(shí)候,是由服務(wù)器向客戶(hù)端發(fā)送連接請(qǐng)求,此時(shí)連接請(qǐng)求會(huì)被防火墻攔截。如果要用PORT方式登錄FTP服務(wù)器,請(qǐng)?jiān)诜阑饓ι洗蜷_(kāi)1024以上的高端端口。
三、常見(jiàn)的FTP客戶(hù)端軟件PORT方式與PASV方式的切換方法。
? ? 大部分FTP客戶(hù)端默認(rèn)使用PASV方式。IE默認(rèn)使用PORT方式。
? ? 在大部分FTP客戶(hù)端的設(shè)置里,常見(jiàn)到的字眼都是“PASV”或“被動(dòng)模式”,極少見(jiàn)到“PORT”或“主動(dòng)模式”等字眼。因?yàn)镕TP的登錄方式只有兩種:PORT和PASV,取消PASV方式,就意味著使用PORT方式。
IE:
? ? 工具 -> Internet選項(xiàng) -> 高級(jí) -> “使用被動(dòng)FTP”(需要IE6.0以上才支持)。如果找不到這個(gè)選項(xiàng),請(qǐng)看 圖片。
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)識(shí) -> “使用被動(dòng)模式”
或
? ? 站點(diǎn)管理 -> 對(duì)應(yīng)站點(diǎn) -> 選項(xiàng) -> “使用被動(dòng)模式”
或
? ? 快速連接 -> 切換 -> “使用被動(dòng)模式”
LeechFTP:
? ? Option -> Firewall -> Do not Use
四、請(qǐng)盡量不要用IE作為FTP客戶(hù)端
? ? IE只是個(gè)很粗糙的FTP客戶(hù)端工具。首先,IE6.0以下的版本不支持PASV方式;其次,IE在登錄FTP的時(shí)候,看不到登錄信息。在登錄出錯(cuò)的時(shí)候,無(wú)法找到錯(cuò)誤的原因。在測(cè)試的時(shí)候,強(qiáng)烈建議不要使用IE。
posted on 2008-01-31 14:44
我風(fēng) 閱讀(1486)
評(píng)論(1) 編輯 收藏 引用