CentOS中vsftpd的主動和被動方式


網址http://blog.csdn.net/nyunyuzhao/article/details/5734978,學習了。

FTP是File Transfer Protocol(文件傳輸協議)的縮寫,用來在兩台計算機之間互相傳送文件。相比於HTTP,FTP協議要復雜得多。復雜的原因,是因為FTP協議要用到兩個TCP連接,一個是命令鏈路,用來在FTP客戶端與服務器之間傳遞命令;另一個是數據鏈路,用來上傳或下載數據。 

  

PORT & PASV 

    FTP協議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。 

    PORT(主動)方式的連接過程是:客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。當需要傳送數據時,客戶端在命令鏈路上用PORT命令告訴服務器:“我打開了XXXX端口,你過來連接我”。於是服務器從20端口向客戶端的XXXX端口發送連接請求,建立一條數據鏈路來傳送數據。 

    PASV(被動)方式的連接過程是:客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。當需要傳送數據時,服務器在命令鏈路上用PASV命令告訴客戶端:“我打開了XXXX端口,你過來連接我”。於是客戶端向服務器的XXXX端口發送連接請求,建立一條數據鏈路來傳送數據。 

    從上面可以看出,兩種方式的命令鏈路連接方法是一樣的,而數據鏈路的建立方法就完全不同。而FTP的復雜性就在於此。 

  

使用FTP客戶端的注意事項 

    請注意:選擇用PASV方式還是PORT方式登錄FTP服務器,選擇權在FTP客戶端。 

一、客戶端只有內網IP,沒有公網IP 

    從上面的FTP基礎知識可知,如果用PORT方式,因為客戶端沒有公網IP,FTP將無法連接客戶端建立數據鏈路。因此,在這種情況下,客戶端必須要用PASV方式,才能連接FTP服務器。大部分人登錄不上,典型的錯誤原因就是因為客戶端沒有公網IP,但用了IE作為FTP客戶端來登錄(IE默認使用PORT方式)。 

  

二、客戶端有公網IP,但安裝了防火牆 

    如果用PASV方式登錄FTP服務器,因為建立數據鏈路的時候,是由客戶端向服務器發送連接請求,沒有問題。反過來,如果用PORT方式登錄FTP服務器,因為建立數據鏈路的時候,是由服務器向客戶端發送連接請求,此時連接請求會被防火牆攔截。如果要用PORT方式登錄FTP服務器,請在防火牆上打開1024以上的高端端口。 

  

三、常見的FTP客戶端軟件PORT方式與PASV方式的切換方法。 

    大部分FTP客戶端默認使用PASV方式。IE默認使用PORT方式。 

    在大部分FTP客戶端的設置里,常見到的字眼都是“PASV”或“被動模式”,極少見到“PORT”或“主動模式”等字眼。因為FTP的登錄方式只有兩種:PORT和PASV,取消PASV方式,就意味着使用PORT方式。 

  

IE: 

    工具 -> Internet選項 -> 高級 -> “使用被動FTP”(需要IE6.0以上才支持)。如果找不到這個選項,請看 圖片。 

  

CuteFTP: 

    Edit -> Setting -> Connection -> Firewall -> “PASV Mode” 

或File -> Site Manager,在左邊選中站點 -> Edit -> “Use PASV mode” 

  

FlashGet: 

    工具 -> 選項 -> 代理服務器 -> 直接連接 -> 編輯 -> “PASV模式” 

  

FlashFXP: 

    選項 -> 參數選擇 -> 代理/防火牆/標識 -> “使用被動模式” 

或站點管理 -> 對應站點 -> 選項 -> “使用被動模式” 

或快速連接 -> 切換 -> “使用被動模式” 

  

LeechFTP: 

    Option -> Firewall -> Do not Use 

  

四、請盡量不要用IE作為FTP客戶端 

    IE只是個很粗糙的FTP客戶端工具。首先,IE6.0以下的版本不支持PASV方式;其次,IE在登錄FTP的時候,看不到登錄信息。在登錄出錯的時候,無法找到錯誤的原因。在測試的時候,強烈建議不要使用IE。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM