天天看點

vsftp 主動模式 被動模式

【基本介紹】

FTP是一種文檔傳輸協定(File Transfer Protocol),是利用TCP協定建立兩個連線通道才能順利傳輸資料,一個是指令通道,一個是資料通道。

這裡介紹主動模式和被動模式

【主動模式】

[img]http://dl2.iteye.com/upload/attachment/0100/1652/c222e083-3ff6-38a1-a49b-debb0a18ebe0.jpg[/img]

FTP Client随機選擇TCP port(通常>1024)呼叫FTP server的port 21請求。進行「TCP Three-Way Handshake」(步驟1~3)當順利完成「TCP Three-Way Handshake」之後,便建立「指令連線」的通道(步驟4),這個指令通道隻能進行FTP

的「指令」。

如果需要傳輸資料,例如上傳或下載下傳就得再要額外建立一條資料傳輸的連線,即是所謂的「資料連接配接」通道。此「資料連接配接」通道建立方式如下,當Client送出傳輸資料的指令時,此時Client

會在另一個>1024 port上Listen等待連線,並利用「指令連線」的通道告訴Server其Listen的port number(步驟5)。然後FTP Server會利用port 20和剛才FTP Client所告知的TCP port進行Three-Way Handshake并建立「資料連線」通道連接配接(步驟6~9)。因為這種「資料連線」通道建立方式是由FTP Server

的port 20主動跟FTP Client連線,所叫「主動模式(Active Mode)

【被動模式】

[img]http://dl2.iteye.com/upload/attachment/0100/1654/1931ca36-a563-3c5a-8008-8665ca025787.jpg[/img]

建立「指令連線」的通道的方式和主動模式一樣(步驟1~4),但是如果需要傳輸資料,就是要建立「資料連線」通道時,Client會送出PASV(Passive)指令,告訴FTP Server,要利用被動模式建立「資料連線」通道。當FTP Server收到PASV指令時,便會在某個>1024 port上Listen,等待FTP Client來建立資料連線通道(步驟5),并利用指令連線通道告知

FTP Client:「我在那個Port上等你連線」。然後FTP Client會随機再選一個>1024 的port向FTP Server所告知port進行Three-Way Handshake并建立「資料連線」通道連線(步驟

6~9)。因為這種「資料連線」通道建立方式是FTP Server被動等FTP Client來連線,是以叫「被動模式(Active Mode)」

【FileZilla工具設定】

[img]http://dl2.iteye.com/upload/attachment/0100/1660/cb6240d6-49f8-3d66-8965-47c3a3f5a433.jpg[/img]

在站點管理裡面選擇主動模式和被動模式

【參考】

[url]http://www.phys.nthu.edu.tw/~cc/QA/vsftpd.pdf[/url]