FTP的主動模式和被動模式的相關(guān)知識。
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比新源網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式新源網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋新源地區(qū)。費用合理售后完善,十余年實體公司更值得信賴。
在使用FTP時,如果客戶端機器和FTP服務(wù)器雙方之間的所有端口都是開放的,那連接不存在問題。
如果客戶端與服務(wù)器之間有防火墻,如果沒配置好防火策略和采用合適的連接模式,會導(dǎo)致登錄成功,但無法List列表的問題。
要避免出現(xiàn)這樣的問題,首先要了解FTP的工作模式。
1.FTP的PORT(主動模式)和PASV(被動模式)
(1) PORT(主動模式)
PORT中文稱為主動模式,工作的原理: FTP客戶端連接到FTP服務(wù)器的21端口,
發(fā)送用戶名和密碼登錄,登錄成功后要list列表或者讀取數(shù)據(jù)時,客戶端隨機開放一個端口(1024以上),
發(fā)送 PORT命令到FTP服務(wù)器,告訴服務(wù)器客戶端采用主動模式并開放端口;FTP服務(wù)器收到PORT主動模式命令和端口號后,
通過服務(wù)器的20端口和客戶端開放的端口連接,發(fā)送數(shù)據(jù),原理如下圖:
(2) PASV(被動模式)
PASV是Passive的縮寫,中文成為被動模式,工作原理:FTP客戶端連接到FTP服務(wù)器的21端口,
發(fā)送用戶名和密碼登錄,登錄成功后要list列表或者讀取數(shù)據(jù)時,發(fā)送PASV命令到FTP服務(wù)器,
服務(wù)器在本地隨機開放一個端口(1024以上),然后把開放的端口告訴客戶端,
客戶端再連接到服務(wù)器開放的端口進行數(shù)據(jù)傳輸,原理如下圖:
2.兩種模式的比較
從上面的運行原來看到,主動模式和被動模式的不同簡單概述為:
主動模式傳送數(shù)據(jù)時是“服務(wù)器”連接到“客戶端”的端口;被動模式傳送數(shù)據(jù)是“客戶端”連接到“服務(wù)器”的端口。
主動模式需要客戶端必須開放端口給服務(wù)器,很多客戶端都是在防火墻內(nèi),開放端口給FTP服務(wù)器訪問比較困難。
被動模式只需要服務(wù)器端開放端口給客戶端連接就行了。
3.不同工作模式的網(wǎng)絡(luò)設(shè)置
我在實際項目中碰到的問題是,F(xiàn)TP的客戶端和服務(wù)器分別在不同網(wǎng)絡(luò),兩個網(wǎng)絡(luò)之間有至少4層的防火墻,
服務(wù)器端只開放了21端口, 客戶端機器沒開放任何端口。FTP客戶端連接采用的被動模式,
結(jié)果客戶端能登錄成功,但是無法LIST列表和讀取數(shù)據(jù)。很明顯,是因為服務(wù)器端沒開放被動模式下的隨機端口導(dǎo)致。
由于被動模式下,服務(wù)器端開放的端口隨機,但是防火墻要不能全部開放,解決的方案是,
在ftp服務(wù)器配置被動模式下開放隨機端口在 50000-60000之間(范圍在ftp服務(wù)器軟件設(shè)置,
可以設(shè)置任意1024上的端口段),然后在防火墻設(shè)置規(guī)則,開放服務(wù)器端50000-60000之間的端口端。
主動模式下,客戶端的FTP軟件設(shè)置主動模式開放的端口段,在客戶端的防火墻開放對應(yīng)的端口段。
4.如何設(shè)置 工作模式?
有人可能會問FTP服務(wù)器如何設(shè)置工作模式?
FTP服務(wù)器一般都支持主動和被動模式,連接采用何種模式是有FTP客戶端軟件決定。