FTP 的主動模式和被動模式

FTP 是一種基于 TCP 的應(yīng)用層協(xié)議,它不支持 UDP 協(xié)議恳啥。 FTP 工作在一種特殊的服務(wù)機制上查描,它使用兩個端口宵蛀,一個 '數(shù)據(jù)' 端口和一個 '命令' 端口(也稱為控制端口)痴鳄。 通常情況下瘟斜,端口 21 用作命令端口,端口 20 用作數(shù)據(jù)端口。 然而螺句,我偶然間發(fā)現(xiàn)虽惭,數(shù)據(jù)端口有時候并不是在端口 20 上時,這就要談到 FTP 的被動模式了蛇尚。

主動模式

在主動模式的 FTP 中芽唇,客戶端從一個隨機的非系統(tǒng)端口(N > 1023)連接到 FTP 服務(wù)器的命令端口端口 21。然后佣蓉,客戶端開始監(jiān)聽端口 N+1,并將 FTP 命令端口 N+1 告訴 FTP 服務(wù)器亲雪,“請把數(shù)據(jù)發(fā)送給我的 N+1 端口”勇凭。然后,服務(wù)器將從本地數(shù)據(jù)端口 (端口20) 連接回客戶端的數(shù)據(jù)端口义辕,也就是 N+1 端口虾标。

因為服務(wù)器防火墻的隔離作用,我們應(yīng)該確保服務(wù)器 FTP 到客戶端的一下幾個通道的暢通:

FTP 服務(wù)器端口 21 (接受全部客戶端)

FTP 服務(wù)器端口 21 到 > 1023 的端口 ( 服務(wù)器響應(yīng)客戶端控制端口 )

FTP 服務(wù)器端口 20 到 > 1023 的端口 ( 服務(wù)器發(fā)起到客戶端的數(shù)據(jù)端口的連接 )

從 > 1023的端口到 FTP 服務(wù)器端口 20 ( 客戶端發(fā)送 ack 到服務(wù)器的數(shù)據(jù)端口 )

用圖來表示這些通道:


activeftp.gif

第 1 步灌砖,客戶端的命令端口與服務(wù)器的命令端口連接并發(fā)送命令端口 1027璧函。然后,服務(wù)器在第 2 步時將一個 ACK 發(fā)送回客戶端的命令端口基显。第 3 步蘸吓,服務(wù)器在其本地數(shù)據(jù)端口上啟動連接,連接到前面指定的客戶端的數(shù)據(jù)端口撩幽。最后库继,客戶端返回 ACK,如第 4 步所示窜醉。

主動模式的 FTP 主要問題實際上落在客戶端宪萄。FTP 的客戶端并不會主動連接到服務(wù)器的數(shù)據(jù)端口,而是是告訴服務(wù)器它正在監(jiān)聽哪個端口榨惰,然后服務(wù)器發(fā)起連接到客戶端上指定的端口拜英。但是,這樣的連接有時候會被客戶端的防火墻阻止琅催【有祝‘

被動模式

為了解決服務(wù)器主動發(fā)起到客戶端連接會北阻止的問題,另一種更完善的工作模式出現(xiàn)了藤抡,它就是 FTP 的被動模式排监,縮寫作 PASV,它工作的前提是客戶端明確告知 FTP 服務(wù)器它使用被動模式杰捂。

在被動模式的 FTP 中舆床,客戶端啟動到服務(wù)器的兩個連接,解決了防火墻阻止從服務(wù)器到客戶端的傳入數(shù)據(jù)端口連接的問題。FTP 連接建立后挨队,客戶端在本地打開兩個隨機的非系統(tǒng)端口 N 和 N + 1(N > 1023)谷暮。第一個端口連接服務(wù)器上的 21 端口,但是客戶端這次將會發(fā)出 PASV 命令盛垦,也就是不允許服務(wù)器連接回其數(shù)據(jù)端口湿弦。這樣,服務(wù)器隨后會打開一個隨機的非系統(tǒng)端口 P (P > 1023)腾夯,并將 P 發(fā)送給客戶端作為 PASV 命令的響應(yīng)颊埃。然后客戶端啟動從端口 N+1 到端口 P 的連接來傳輸數(shù)據(jù)。

在被動模式中蝶俱,要保持一下通道的暢通:

FTP服務(wù)器的 21 端口(接受所有客戶端)

FTP服務(wù)器的 21端口到 > 1023 的遠(yuǎn)程端口 ( 服務(wù)器響應(yīng)客戶端控制端口 )

FTP服務(wù)器 > 1023 的端口(接受所有客戶端發(fā)起的連接到服務(wù)器指定的隨機端口)

FTP服務(wù)器 > 1023 的端口到 > 1023 的遠(yuǎn)程端口(服務(wù)器發(fā)送 ack 和數(shù)據(jù)到客戶端數(shù)據(jù)端口)

被動模式用圖表示:

passiveftp.gif

第 1 步班利,客戶端在命令端口上與服務(wù)器連接,并發(fā)出 PASV 命令榨呆。然后罗标,服務(wù)器在第 2 步時使用端口 2024 進(jìn)行響應(yīng),告訴客戶端它正在監(jiān)聽的數(shù)據(jù)連接端口积蜻。第 3 步闯割,客戶端啟動從其數(shù)據(jù)端口到指定服務(wù)器數(shù)據(jù)端口的數(shù)據(jù)連接。最后竿拆,服務(wù)器在第 4 步將 ACK 發(fā)送回客戶端的數(shù)據(jù)端口宙拉。

服務(wù)器防火墻需要給 FTP 的被動模式開放一個端口范圍允許所有客戶端連接,比如 5000 - 6000丙笋。

個人博客同步更新鼓黔,獲取更多技術(shù)分享請關(guān)注:鄭保樂的博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市不见,隨后出現(xiàn)的幾起案子澳化,更是在濱河造成了極大的恐慌,老刑警劉巖稳吮,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缎谷,死亡現(xiàn)場離奇詭異,居然都是意外死亡灶似,警方通過查閱死者的電腦和手機列林,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酪惭,“玉大人希痴,你說我怎么就攤上這事〈焊校” “怎么了砌创?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵虏缸,是天一觀的道長。 經(jīng)常有香客問我嫩实,道長刽辙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任甲献,我火速辦了婚禮宰缤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘晃洒。我一直安慰自己慨灭,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布球及。 她就那樣靜靜地躺著氧骤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪桶略。 梳的紋絲不亂的頭發(fā)上语淘,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天诲宇,我揣著相機與錄音际歼,去河邊找鬼。 笑死姑蓝,一個胖子當(dāng)著我的面吹牛鹅心,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播纺荧,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼旭愧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了宙暇?” 一聲冷哼從身側(cè)響起输枯,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎占贫,沒想到半個月后桃熄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡型奥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年瞳收,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厢汹。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡螟深,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出烫葬,到底是詐尸還是另有隱情界弧,我是刑警寧澤凡蜻,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站夹纫,受9級特大地震影響咽瓷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜舰讹,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一茅姜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧月匣,春花似錦钻洒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至萍悴,卻和暖如春头遭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背癣诱。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工计维, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人撕予。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓鲫惶,卻偏偏與公主長得像,于是被迫代替她去往敵國和親实抡。 傳聞我的和親對象是個殘疾皇子欠母,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容