ftp端口號是多少默認,ftp數據端口和控制端口
時間:2022-03-18 來源: 作者: 我要糾錯
FTP是一種基于TCP的高級文件協議,在傳輸過程中,主要分為連接建立和數據傳輸兩部分,響應的涉及服務器端的命令端口和數據端口。 建立連接是一種基于tcp的三次握手模型,對于ftp服務器,它使用固定的21命令端口與客戶端進行通信。 在數據傳輸期間、ftp傳輸期間,通過在服務端數據通信期間選擇不同的數據端口,可以將ftp分為主動模式(Port )和被動模式(Pasv )。 對于客戶端,這兩種模式對端口沒有固定性,只能在創建時主動指定本地端口或隨機端口,但對于服務器,可以使用服務器上固定的20個端口,或服務器根據連接立即指定1025個或更多數據端口但是,命令傳輸端口對服務器來說始終是21個端口。
FTP服務端支持兩種模式。 在具體的通信過程中,選擇哪個模式取決于客戶端的選擇。 然后介紹了兩種模式的具體流程和相關原理。
1.ftp兩種運行模式
Port模式(主動)
FTP客戶端從任何非特殊端口(N 1023 )連接到FTP服務器命令端口21。 然后,客戶端在n1(n1=1024 )端口上監聽,并通過n1(n1=1024 )端口向FTP服務器發送命令。 服務建立從服務20端口到用戶本地指定端口的數據傳輸連接。
處于活動模式的FTP的主要問題實際上在于客戶端。 FTP客戶端不會主動連接到服務器的數據端口,而是告訴服務器正在接收哪個端口,然后服務器開始連接到客戶端上的指定端口。 但是,這樣的連接有時候會被客戶端的防火墻阻止
具體原理
以下是活動模式下的FTP的具體示例。
在活動模式的FTP中,客戶端通過隨機非系統端口(N 1023 )連接到FTP服務器的命令端口21。 然后,客戶端開始監聽端口N 1,并將FTP命令端口N 1告訴FTP服務器“請將數據發送到我的N 1端口”。 然后,服務從本地數據端口(端口20 )連接到客戶端數據端口,即N 1端口。
由于服務器防火墻已隔離,因此必須確保從服務器FTP到客戶端的以下幾個通道已順利進行:
FTP服務器端口21 (接受所有客戶端) ) ) ) ) ) ) )。
FTP服務器端口21~1023 (服務器響應客戶端控制端口)
FTP服務器端口20到1023上的端口(服務器開始連接到客戶端數據端口)。
從1023端口到FTP服務器端口20 (客戶端向服務器數據端口發送ack ) )。
用圖表示這些通道:
在步驟1中,客戶端命令端口連接到服務器命令端口,并發送命令端口1027。 然后,服務在步驟2中將ACK發送回客戶端命令端口。 在步驟3中,服務在本地數據端口上啟動連接,并連接到前面指定的客戶端數據端口。 最后,客戶端返回ACK,如步驟4所示。
Pasv模式(被動)
Pasv是Passive的縮寫,中文處于被動模式。 工作原理: FTP客戶端連接到FTP服務器的21個端口,并通過發送用戶名和密碼進行登錄。 成功登錄后,讀取list列表或數據時,將Pasv命令發送到FTP服務器。 服務器本地隨機開放一個端口(1024或更高),將開放端口傳遞給客戶端,然后客戶端連接到服務器的開放端口進行數據傳輸
被動模式的FTP的具體例子如下所示。
在被動模式的FTP中,客戶端啟動到服務器的兩個連接,以解決防火墻阻止服務器到客戶端的傳入數據端口連接的問題。 建立FTP連接后,客戶端將在本地打開兩個隨機的非系統端口n和n1(n1023 )。 第一個端口連接到服務器的21個端口,但客戶端現在發出PASV命令。 這意味著服務器不能重新連接到數據端口。 這將使服務打開隨機的非系統端口p(p1023 ),并將p發送到客戶端以響應PASV命令。 然后,客戶端啟動從端口N 1到端口p的連接并傳輸數據。
被動模式保持以下通道的平滑度:
FTP服務器的21個端口(接受所有客戶端)
從FTP服務器的21端口到1023端口的遠程端口(服務器響應客戶端控制端口) ) ) )。
FTP服務器1023上的端口(從所有客戶端接受到服務器指定隨機端口的連接)。
從FTP服務器1023的端口到1023的遠程端口(服務器將ack和數據發送到客戶端數據端口)。
被動模式用圖表示:
在步驟1中,客戶端通過命令端口連接到服務器并發出PASV命令。 然后,服務在步驟2中使用端口2024進行響應,并通知客戶端正在接收的數據連接
口。第 3 步,客戶端啟動從其數據端口到指定服務器數據端口的數據連接。最后,服務器在第 4 步將 ACK 發送回客戶端的數據端口。
被動模式的FTP的需要在服務端進行開放端口區段設置,用來開放給客戶端進行連接,如果被動模式下,出現客戶端可以訪問ftp服務端文件的列表,但是無法進行下載等進一步操操作,出現這種問題的原因,是服務端的文件無法被讀取或者是無法通過網絡端口進行傳輸??梢园凑找韵虏襟E進行排查:
1)檢查服務端端對文件的權限設置是否完全,登錄用戶是否存在下載權限;
2)如果登錄用戶存在下載權限,那么需要進一步檢查服務器端的數據傳輸接口是否開放,如果有防火墻的話,是否配置了防火墻的出站入站端口規則;
3)如果仍然存在問題,檢查被動模式下的ftp服務器的數據端口設置是否進行指定,默認是1025-6000,指定的端口區段是否已經配置了防火墻的出站規則;
2.兩種模式的比較
從上面的運行原來看到,主動模式和被動模式的不同簡單概述為: 主動模式傳送數據時是“服務器”連接到“客戶端”的端口;被動模式傳送數據是“客戶端”連接到“服務器”的端口。
主動模式需要客戶端必須開放端口給服務器,很多客戶端都是在防火墻內,開放端口給FTP服務器訪問比較困難。
被動模式只需要服務器端開放端口給客戶端連接就行了。
3.不同工作模式的網絡設置
我在實際項目中碰到的問題是,FTP的客戶端和服務器分別在不同網絡,兩個網絡之間有至少4層的防火墻,服務器端只開放了21端口, 客戶端機器沒開放任何端口。FTP客戶端連接采用的被動模式,結果客戶端能登錄成功,但是無法LIST列表和讀取數據。很明顯,是因為服務器端沒開放被動模式下的隨機端口導致。
由于被動模式下,服務器端開放的端口隨機,但是防火墻要不能全部開放,解決的方案是,在ftp服務器配置被動模式下開放隨機端口在 50000-60000之間(范圍在ftp服務器軟件設置,可以設置任意1024上的端口段),然后在防火墻設置規則,開放服務器端50000-60000之間的端口端。
主動模式下,客戶端的FTP軟件設置主動模式開放的端口段,在客戶端的防火墻開放對應的端口段。
4.常見的ftp客戶端設置被動模式
(1)IE:工具 -> Internet選項 -> 高級 -> “使用被動FTP”(需要IE6.0以上才支持)。
(2)CuteFTP:Edit -> Setting -> Connection -> Firewall -> “PASV Mode” 或File -> Site Manager,在左邊選中站點 -> Edit -> “Use PASV mode” 。
(3)FlashGet:工具 -> 選項 -> 代理服務器 -> 直接連接 -> 編輯 -> “PASV模式”。
(4)FlashFXP:選項 -> 參數選擇 -> 代理/防火墻/標識 -> “使用被動模式” 或 站點管理 -> 對應站點 -> 選項 -> “使用被動模式”或快速連接 -> 切換 -> “使用被動模式”。