FTP主動(dòng)模式、被動(dòng)模式介紹
主動(dòng)模式
1. FTP client use TCP port 1026 for command to FTP server command port 21
2. FTP server use TCP port 21 responed to FTP client command port 1026
3. FTP server use TCP port 20 for sending data to FTP client data port 1027 (1026 + 1)
4. FTP client use TCP port 1027 ( 1026 + 1) for data ACK to FTP server port 20
被動(dòng)模式
1. FTP client use TCP port 1026 to FTP server command port 21 via command PASV
2. FTP server use TCP port 21 to FTP client 1026 command port for reply data port 2024
3. FTP client use TCP port 1027 (N+1) to FTP server 2024 for data transmit and ACK
4. FTP server use TCP port 2024 to FTP client for data transmit and ACK
FTP是僅基于TCP的服務(wù),不支持UDP。 與眾不同的是FTP使用2個(gè)端口,一個(gè)數(shù)據(jù)端口和一個(gè)命令端口(也可叫做控制端口)。通常來說這兩個(gè)端口是21(命令端口)和20(數(shù)據(jù)端口)。但FTP 工作方式的不同,數(shù)據(jù)端口并不總是20。這就是FTP主動(dòng)與被動(dòng)模式的最大不同之處。
(一)主動(dòng)FTP
主動(dòng)方式的FTP是這樣的:客戶端從一個(gè)任意的非特權(quán)端口N(N>1024)連接到FTP服務(wù)器的命令端口(21端口)。然后客戶端開始監(jiān)聽端口N+1,并發(fā)送FTP命令“port N+1”到FTP服務(wù)器。接著服務(wù)器會(huì)從它自己的數(shù)據(jù)端口(20)連接到客戶端指定的數(shù)據(jù)端口(N+1)。
針對(duì)FTP服務(wù)器前面的防火墻來說,必須允許以下通訊才能支持主動(dòng)方式FTP:
1. 任何大于1024的端口到FTP服務(wù)器的21端口。(客戶端初始化的連接)
2. FTP服務(wù)器的21端口到大于1024的端口。 (服務(wù)器響應(yīng)客戶端的控制端口)
3. FTP服務(wù)器的20端口到大于1024的端口。(服務(wù)器端初始化數(shù)據(jù)連接到客戶端的數(shù)據(jù)端口)
4. 大于1024端口到FTP服務(wù)器的20端口(客戶端發(fā)送ACK響應(yīng)到服務(wù)器的數(shù)據(jù)端口)
(二)被動(dòng)FTP
為了解決服務(wù)器發(fā)起到客戶的連接的問題,人們開發(fā)了一種不同的FTP連接方式。這就是所謂的被動(dòng)方式,或者叫做PASV,當(dāng)客戶端通知服務(wù)器它處于被動(dòng)模式時(shí)才啟用。
在被動(dòng)方式FTP中,命令連接和數(shù)據(jù)連接都由客戶端發(fā)起,這樣就可以解決從服務(wù)器到客戶端的數(shù)據(jù)端口的入方向連接被防火墻過濾掉的問題。
當(dāng)開啟一個(gè) FTP連接時(shí),客戶端打開兩個(gè)任意的非特權(quán)本地端口(N > 1024和N+1)。第一個(gè)端口連接服務(wù)器的21端口,但與主動(dòng)方式的FTP不同,客戶端不會(huì)提交PORT命令并允許服務(wù)器來回連它的數(shù)據(jù)端口,而是提交 PASV命令。這樣做的結(jié)果是服務(wù)器會(huì)開啟一個(gè)任意的非特權(quán)端口(P > 1024),并發(fā)送PORT P命令給客戶端。然后客戶端發(fā)起從本地端口N+1到服務(wù)器的端口P的連接用來傳送數(shù)據(jù)。
對(duì)于服務(wù)器端的防火墻來說,必須允許下面的通訊才能支持被動(dòng)方式的FTP:
1. 從任何大于1024的端口到服務(wù)器的21端口 (客戶端初始化的連接)
2. 服務(wù)器的21端口到任何大于1024的端口 (服務(wù)器響應(yīng)到客戶端的控制端口的連接)
3. 從任何大于1024端口到服務(wù)器的大于1024端口 (客戶端初始化數(shù)據(jù)連接到服務(wù)器指定的任意端口)
4. 服務(wù)器的大于1024端口到遠(yuǎn)程的大于1024的端口(服務(wù)器發(fā)送ACK響應(yīng)和數(shù)據(jù)到客戶端的數(shù)據(jù)端口)
(三) 主動(dòng)與被動(dòng)FTP優(yōu)缺點(diǎn)
主動(dòng)FTP對(duì)FTP服務(wù)器的管理有利,但對(duì)客戶端的管理不利。因?yàn)镕TP服務(wù)器企圖與客戶端的高位隨機(jī)端口建立連接,而這個(gè)端口很有可能被客戶端的防火墻阻塞掉。被動(dòng)FTP對(duì)FTP客戶端的管理有利,但對(duì)服務(wù)器端的管理不利。因?yàn)榭蛻舳艘c服務(wù)器端建立兩個(gè)連接,其中一個(gè)連到一個(gè)高位隨機(jī)端口,而這個(gè)端口很有可能被服務(wù)器端的防火墻阻塞掉。
幸運(yùn)的是,有折衷的辦法。既然FTP服務(wù)器的管理員需要他們的服務(wù)器有最多的客戶連接,那么必須得支持被動(dòng)FTP。我們可以通過為FTP服務(wù)器指定一個(gè)有 限的端口范圍來減小服務(wù)器高位端口的暴露。這樣,不在這個(gè)范圍的任何端口會(huì)被服務(wù)器的防火墻阻塞。雖然這沒有消除所有針對(duì)服務(wù)器的危險(xiǎn),但它大大減少了危 險(xiǎn)。
簡(jiǎn)而言之:
主動(dòng)模式(PORT)和被動(dòng)模式(PASV)。主動(dòng)模式是從服務(wù)器端向客戶端發(fā)起連接;被動(dòng)模式是客戶端向服務(wù)器端發(fā)起連接。兩者的共同點(diǎn)是都使用 21端口進(jìn)行用戶驗(yàn)證及管理,差別在于傳送數(shù)據(jù)的方式不同,PORT模式的FTP服務(wù)器數(shù)據(jù)端口固定在20,而PASV模式則在1025-65535之間隨機(jī)
FTP主動(dòng)模式與被動(dòng)模式的解決與原理
FTP是File Transfer Protocol(文件傳輸協(xié)議)的縮寫,用來在兩臺(tái)計(jì)算機(jī)之間互相傳送文件。相比于HTTP,F(xiàn)TP協(xié)議要復(fù)雜得多。復(fù)雜的原因,是因?yàn)镕TP協(xié)議要用到兩個(gè)TCP連接,一個(gè)是命令鏈路,用來在FTP客戶端與服務(wù)器之間傳遞命令;另一個(gè)是數(shù)據(jù)鏈路,用來上傳或下載數(shù)據(jù)。
FTP協(xié)議有兩種工作方式:PORT方式和PASV方式,中文意思為主動(dòng)式和被動(dòng)式。
PORT(主動(dòng))方式的連接過程是:客戶端向服務(wù)器的FTP端口(默認(rèn)是21)發(fā)送連接請(qǐng)求,服務(wù)器接受連接,建立一條命令鏈路。當(dāng)需要傳送數(shù)據(jù)時(shí),客戶端在命令鏈路上用PORT命令告訴服務(wù)器:“我打開了XXXX端口,你過來連接我”。于是服務(wù)器從20端口向客戶端的XXXX端口發(fā)送連接請(qǐng)求,建立一條數(shù)據(jù)鏈路來傳送數(shù)據(jù)。
PASV(被動(dòng))方式的連接過程是:客戶端向服務(wù)器的FTP端口(默認(rèn)是21)發(fā)送連接請(qǐng)求,服務(wù)器接受連接,建立一條命令鏈路。當(dāng)需要傳送數(shù)據(jù)時(shí),服務(wù)器在命令鏈路上用PASV命令告訴客戶端:“我打開了XXXX端口,你過來連接我”。于是客戶端向服務(wù)器的XXXX端口發(fā)送連接請(qǐng)求,建立一條數(shù)據(jù)鏈路來傳送數(shù)據(jù)。
概括:
--------------------------------------------------------------------------------
主動(dòng)模式:服務(wù)器向客戶端敲門,然后客戶端開門
被動(dòng)模式:客戶端向服務(wù)器敲門,然后服務(wù)器開門
所以,如果你是如果通過代理上網(wǎng)的話,就不能用主動(dòng)模式,因?yàn)榉?wù)器敲的是上網(wǎng)代理服務(wù)器的門,而不是敲客戶端的門
而且有時(shí)候,客戶端也不是輕易就開門的,因?yàn)橛蟹阑饓ψ钃酰强蛻舳碎_放大于1024的高端端口
--------------------------------------------------------------------------------
相關(guān)文章:
