PASV mode

PASV mode

PASV mode即被動模式傳送。FTP的連接一般是有兩個連接的,一個是客戶端和伺服器傳輸命令的,另一個是數據傳送的連接。FTP服務程序一般會支持兩種不同的模式,一種是Port模式,一種是Passive模式(Pasv Mode)。

簡介


什麼叫做PASV mode(被動模式傳送)?他是如何工作的?

兩種模式及區別


下面講這兩種不同模式連接方式的分別。先假設客戶端為C,服務端為S。

Port模式

當客戶端C向服務端S連接后,使用的是Port模式,那麼客戶端C會發送一條命令告訴服務端S(客戶端C在本地打開了一個埠N在等著你進行數據連接),當服務端S收到這個Port命令后 就會向客戶端打開的那個埠N進行連接,這種數據連接就生成了。

Pasv模式

當客戶端C向服務端S連接后,服務端S會發信息給客戶端C,這個信息是(服務端S在本地打開了一個埠M,你現在去連接我吧),當客戶端C收到這個信息后,就可以向服務端S的M埠進行連接,連接成功后,數據連接也建立了。

兩種模式主要的不同

從上面的解釋中,大家可以看到兩種模式主要的不同是數據連接建立的不同,對於Port模式,是客戶端C在本地打開一個埠等服務端S去連接建立數據連接;而Pasv模式就是服務端S打開一個埠等待客戶端C去建立一個數據連接。

為什麼需要設置成為PASV mode


從上圖中我們可以看出,路由上有兩個ip一個是內網ip(也就是你的網關地址)另外一個是外網IP,你所有LAN中的計算機都是共享這個218.63.1.5訪問INTERNET的(中間通過了192.168.1.1這個網關),讓我們來看一個連接的詳細過程,以便您更進一步了解為什麼需要設置成為PASV mode 傳送:
當您通過下載工具或使用瀏覽器下載影片的時候就開始連接FTP伺服器, 當FTP服務收到你的連接請求后發送應答信息給客戶並開始等待用戶的認證信息,-->認證通過後開始建立數據連接 如果你不是設置成為pasv模式,那麼客戶段(下載工具)會在本地計算機開一個數據埠,然後發送一條“命令”給FTP服務段,(我已打開了n埠你現在可以連接我),那麼FTP伺服器段就開始連接你ip地址的N埠,(但是連接是失敗的) 因為你是通過192.168.1.1 這個網關(你的路由設備)訪問internet的ftp服務段他實際上是同你的外網地址為218.63.1.5的路由設備連接,根本就連接不上你下載工具中打開的埠,例如你使用的是 192.168.1.2 這個客戶機,FTP服務段此時無法同你計算機(192.168.1.2)監聽埠N連接上,所以此時你會看到伺服器反饋的錯誤信息,提示你192.168.1.2打開的埠無法連接之類的, 信息此時你就需要把傳送模式設置成為PASV模式,
而如果你使用的是PASV模式那麼當你ftp通過認證后,客戶段首先向伺服器發送一條PASV命令,服務段接受到命令后打開一個埠並告訴客戶段“我已打開了一個埠,你此時可以來連接了" 客戶段(下載工具)接受到信息后,就去連接服務段已經打開了的埠,從而完成數據連接,所有ftp下載的數據流都將通過這個埠傳送。