FTP基礎知識 |
FTP基礎知識 FTP是File Transfer Protocol(文件傳輸協(xié)議)的縮寫(xiě),用來(lái)在兩臺計算機之間互相傳送文件。相比于HTTP,FTP協(xié)議要復雜得多。復雜的原因,是因為FTP協(xié)議要用到兩個(gè)TCP連接,一個(gè)是命令鏈路,用來(lái)在FTP客戶(hù)端與服務(wù)器之間傳遞命令。另一個(gè)是數據鏈路,用來(lái)上傳或下載數據。 FTP協(xié)議有兩種工作方式:PORT方式和PASV方式,中文意思為主動(dòng)式和被動(dòng)式。 PORT(主動(dòng))方式的連接過(guò)程是:客戶(hù)端向服務(wù)器的FTP端口(默認是21)發(fā)送連接請求,服務(wù)器接受連接,建立一條命令鏈路。 當需要傳送數據時(shí),客戶(hù)端在命令鏈路上用 PORT命令告訴服務(wù)器:“我打開(kāi)了端口,你過(guò)來(lái)連接我”。于是服務(wù)器從20端口向客戶(hù)端的端口發(fā)送連接請求,建立一條數據鏈路來(lái)傳送數據。 PASV(被動(dòng))方式的連接過(guò)程是:客戶(hù)端向服務(wù)器的FTP端口(默認是21)發(fā)送連接請求,服務(wù)器接受連接,建立一條命令鏈路。 當需要傳送數據時(shí),服務(wù)器在命令鏈路上用 PASV命令告訴客戶(hù)端:“我打開(kāi)了端口,你過(guò)來(lái)連接我”。于是客戶(hù)端向服務(wù)器的端口發(fā)送連接請求,建立一條數據鏈路來(lái)傳送數據。 從上面可以看出,兩種方式的命令鏈路連接方法是一樣的,而數據鏈路的建立方法就完全不同。而FTP的復雜性就在于此。 FTP服務(wù)器端的注意事項 FTP服務(wù)器是公網(wǎng)IP,用公網(wǎng)動(dòng)態(tài)域名;或是內網(wǎng)IP,用內網(wǎng)專(zhuān)業(yè)版TrueHost 服務(wù)器如果安裝了防火墻,請記住要在防火墻上打開(kāi)FTP端口(默認是21)。 所有FTP服務(wù)器軟件都支持PORT方式。至于PASV方式,大部分FTP服務(wù)器軟件都支持。支持PASV方式的FTP服務(wù)器軟件,也可以設置為只工作在PORT方式上。 為了PASV方式能正常工作,需要在FTP服務(wù)器軟件上為PASV方式指定可用的端口范圍(設置方法)。此外,還要在服務(wù)器的防火墻上打開(kāi)這些端口。當客戶(hù)端以PASV方式連接服務(wù)器的時(shí)候,服務(wù)器就會(huì )在這個(gè)端口范圍里挑選一個(gè)端口出來(lái),給客戶(hù)端連接。? FTP服務(wù)器是內網(wǎng)IP,用內網(wǎng)動(dòng)態(tài)域名標準版cmnatproy。這種情況下,FTP服務(wù)器不需要做特殊設置,只要支持PASV方式就可以了。大部分FTP服務(wù)器軟件都支持PASV方式。 FTP客戶(hù)端的注意事項 請注意:選擇用PASV方式還是PORT方式登錄FTP服務(wù)器,選擇權在FTP客戶(hù)端,而不是在FTP服務(wù)器。 客戶(hù)端只有內網(wǎng)IP,沒(méi)有公網(wǎng)IP 從上面的FTP基礎知識可知,如果用PORT方式,因為客戶(hù)端沒(méi)有公網(wǎng)IP,FTP將無(wú)法連接客戶(hù)端建立數據鏈路。因此,在這種情況下,客戶(hù)端必須要用PASV方式,才能連接FTP服務(wù)器。大部分FTP站長(cháng)發(fā)現自己的服務(wù)器有人能登錄上,有人登錄不上,典型的錯誤原因就是因為客戶(hù)端沒(méi)有公網(wǎng)IP,但用了IE作為FTP客戶(hù)端來(lái)登錄(IE默認使用PORT方式)。 客戶(hù)端有公網(wǎng)IP,但安裝了防火墻 如果用PASV方式登錄FTP服務(wù)器,因為建立數據鏈路的時(shí)候,是由客戶(hù)端向服務(wù)器發(fā)送連接請求,沒(méi)有問(wèn)題。反過(guò)來(lái),如果用PORT方式登錄FTP服務(wù)器,因為建立數據鏈路的時(shí)候,是由服務(wù)器向客戶(hù)端發(fā)送連接請求,此時(shí)連接請求會(huì )被防火墻攔截。如果要用PORT方式登錄FTP服務(wù)器,請在防火墻上打開(kāi) 1024以上的高端端口。 連接用內網(wǎng)標準版cmnatproy搭建的FTP服務(wù),必須要用PASV方式。連接任何公網(wǎng)FTP服務(wù)器、或用內網(wǎng)專(zhuān)業(yè)版TrueHost搭建的FTP服務(wù)器,PORT方式和PASV方式都可以使用。當然,使用PORT方式的時(shí)候,還要滿(mǎn)足上面的兩個(gè)條件。 常見(jiàn)的FTP客戶(hù)端軟件PORT方式與PASV方式的切換方法。 大部分FTP客戶(hù)端默認使用PASV方式。IE默認使用PORT方式。在大部分FTP客戶(hù)端的設置里,常見(jiàn)到的字眼都是“PASV”或“被動(dòng)模式”,極少見(jiàn)到“PORT”或“主動(dòng)模式”等字眼。因為FTP的登錄方式只有兩種:PORT和PASV,取消PASV方式,就意味著(zhù)使用PORT方式。 IE:工具 > Internet選項 > 高級> “使用被動(dòng)FTP”(需要IE6.0以上才支持)。 CuteFTP:Edit > Setting > Connection > Firewall > “PASV Mode”或File -> Site Manager,在左邊選中站點(diǎn) -> Edit -> “Use PASV mode” FlashGet:工具 > 選項 > 代理服務(wù)器 > 直接連接 > 編輯 > “PASV模式” FlashFTP:選項 > 參數選擇 > 代理/防火墻/標識 > “使用被動(dòng)模式”或站點(diǎn)管理 > 對應站點(diǎn) > 選項 > “使用被動(dòng)模式”或快速連接> 切換 > “使用被動(dòng)模式” LeechFTP:Option -> Firewall -> Do not Use 請盡量不要用IE作為FTP客戶(hù)端 IE只是個(gè)很粗糙的FTP客戶(hù)端工具。首先,IE6.0以下的版本不支持PASV方式;其次,IE在登錄FTP的時(shí)候,看不到登錄信息。在登錄出錯的時(shí)候,無(wú)法找到錯誤的原因。在測試自己的FTP網(wǎng)站的時(shí)候,強烈建議不要使用IE。 |