什么是FTP端口?FTP 端口對于在客戶端和服務器之間建立連接是必不可少的。確保您的 FTP 偵聽正確的端口,否則您可能會發(fā)現(xiàn)連接到服務器具有挑戰(zhàn)性。FTP 是用于通過網絡傳輸數據的常用協(xié)議。主協(xié)議支持文本、pdf、媒體等使用傳輸文件的傳輸、上傳、下載,但不保證安全,由SFTP協(xié)議保證。
每當您使用文件傳輸協(xié)議 (FTP) 時,您必須知道其中涉及哪些元素以及它們如何工作,以便更好地理解。最關鍵的元素之一是 FTP 端口。使用正確的端口很重要,因為成功的文件傳輸取決于打開的端口。 端口建立連接并啟動客戶端和服務器之間的傳輸。首先,您必須了解 FTP 端口是什么,為什么它是必要的,它的功能,不同的 FTP 模式,配置 FTP 端口以及其他詳細信息。
什么是 FTP 端口?
FTP代表 文件傳輸協(xié)議,允許用戶通過網絡在設備之間交換信息。要建立連接,您需要 FTP 軟件工具并啟動傳輸。FTP 傳輸僅使用特定端口完成。默認情況下,F(xiàn)TP 連接使用端口號 21。此外,您可以更改此默認設置并選擇您選擇的 FTP 端口。但要進行此更改,您需要管理員訪問權限。 每當您開始使用 FTP 進行通信時,您將需要兩個不同的端口,如下所述。
- 當用戶在 FTP 客戶端提供憑據時,它將建立 FTP 連接并打開 FTP 服務器的 FTP 控制端口(默認情況下,該端口為 21)。
- 客戶端與服務器建立第二個連接,這是 FTP 服務器對 FTP 客戶端的響應。此連接將通過端口 20 進行。這是實際傳輸數據的地方。
設備連接到遠程設備很有幫助。端口是必需的,因此不會與網絡內的其他傳輸發(fā)生沖突,從而消除了網絡擁塞的情況。FTP 協(xié)議可以輕松處理批量數據傳輸。該協(xié)議使用 TCP 通道工作。要連接到此通道,您需要一個對服務器開放的端口號。如果您想使用自定義的 FTP 端口號,您只能為您的操作系統(tǒng)使用有限數量的端口。 要了解 FTP 端口的工作原理和配置方式,您必須具備 FTP 及其功能、 FTP 客戶端和服務器的基本知識。讓我們開始吧。
FTP的特點
FTP 是一種應用層協(xié)議,可實現(xiàn)快速數據傳輸。它具有以下功能。
- 數據表示:它支持數據表示形式——ASCII(7 位)、EBCDIC(8 位)和 8 位二進制數據。默認情況下,它使用 ASCII 文件進行文件傳輸。它用 7 位 ASCII 編碼每個字符。該文件首先被轉換為 ASCII 表示,然后由接收器轉換回來。對于傳輸二進制文件,默認格式是圖像文件。該文件將作為一個連續(xù)的比特字節(jié)發(fā)送,無需編碼。
- 文件組織和數據結構:您可以使用 FTP 傳輸結構化和非結構化文件。 非結構化文件是一串字節(jié),并由 EOF(文件結束)標記。這種文件對應的數據結構稱為文件結構。結構化文件包含由 EDR(記錄結束)分隔的記錄列表。這種文件的數據結構稱為記錄結構。另一個結構化文件包含具有頁碼和頁頭的頁面。您可以隨機或按順序訪問這些頁面。數據結構為頁結構。
- 傳輸方式:FTP 使用三種不同的傳輸模式來傳輸文件。
- 流模式:默認情況下,F(xiàn)TP 使用流模式,因為數據以字節(jié)流的形式傳輸。 TCP 將數據分解成段。它不需要 EOF 來指定數據的關閉。但是,如果將文件劃分為記錄,則使用 E??OR(1 字節(jié))和 EOF(1 字節(jié))字符。
- 塊模式:它將數據傳送到從 FTP 到 TCP 的塊中,每個塊都有一個 3 字節(jié)的標頭。第一個字節(jié)稱為塊描述符,而其他兩個字節(jié)以字節(jié)為單位定義塊大小。
- 壓縮模式:如果要傳輸的文件很大,可以壓縮后傳輸。游程編碼使用壓縮方法。對于文本文件,壓縮時會刪除空格,而對于二進制文件,則會壓縮空字符。
- 錯誤控制:由于 FTP 使用 TCP 傳輸文件,因此沒有額外的錯誤恢復機制要求。
- 訪問控制:FTP 通過通過用戶名和密碼放置適當的登錄機制來確保訪問控制。
- FTP操作:FTP 工作在客戶端-服務器架構上,并使用兩個 TCP 連接來完成傳輸。一個連接用于交換控制信號,另一個用于實際數據傳輸。
- 控制連接:它在兩個設備之間傳輸控制信號。兩端的控制過程都使用這種連接。此連接使用 FTP 端口號 21。此連接將在整個 FTP 會話期間保持連接。一次只能傳輸一行命令——客戶端和服務器的控制過程都使用傳輸 NVT 語法。控制進程使用協(xié)議解釋器將本地代碼翻譯成 NVT 語法,反之亦然。
- 數據連接:它指定實際的數據傳輸。在客戶端和服務器的數據傳輸過程 (DTP) 之間建立連接。它使用 FTP 端口 20。與控制連接不同,數據連接在每次傳輸后打開和關閉。數據傳輸是基于對發(fā)送命令的控制來完成的。傳輸文件時,您需要指定要發(fā)送的文件類型。
文件傳輸時,可能會發(fā)生以下情況之一。
- 將文件從服務器復制到客戶端稱為檢索文件。為此,使用 RETR 命令。
- 將文件從客戶端復制到服務器稱為存儲文件。它使用 STOR 命令。
- 將文件名列表從服務器發(fā)送到客戶端。它使用 LLST 命令。
什么是匿名 FTP?
要通過 FTP 客戶端建立連接,您必須向遠程服務器提供授權的用戶名和密碼。一些站點具有每個人都可以訪問的文件,從而啟用匿名 FTP。訪問此類文件,并且用戶不必提供憑據。否則,用戶可以作為匿名用戶名登錄,guest 作為密碼登錄。
什么是 FTP 服務器?
FTP 服務器與 Web 服務器類似。FTP 服務器處理文件的分發(fā)。每當用戶單擊鏈接以從 Internet 下載內容時,鏈接將重定向到 FTP 而不是 HTTP。有些文件對 FTP 服務器上的所有人開放,而有些文件則可供具有授權訪問權限的特定用戶使用。FTP服務器分為匿名服務器和非匿名服務器,以分離這些文件和用戶。
- 匿名服務器:在大多數情況下,F(xiàn)TP 站點允許匿名 FTP,并且您不必提供訪問文件的密碼。您需要提供匿名用戶名并輸入您的電子郵件地址作為密碼。
- 非匿名服務器:對于非匿名服務器,您必須使用正確的密碼以自己的身份登錄。
什么是 FTP 客戶端?
FTP 使用 TCP 來處理所有的通信和共享數據。FTP 在客戶端/服務器模型上工作,其中一臺設備是客戶端,另一臺充當服務器。所有惡魔的FTP進程都運行在每個人都可以訪問的服務器上,并使服務器能夠處理所有事務。要使用 FTP,您需要在系統(tǒng)上使用 FTP 客戶端軟件并建立與服務器設備的連接。要連接到 FTP 服務器,您需要在 FTP 客戶端軟件上提供用戶名和密碼。這將在兩個設備之間打開一個命令鏈接,允許您發(fā)送命令、消息和其他數據。然后,您將能夠根據您的權限在服務器上執(zhí)行任何任務,因為每個用戶都無權執(zhí)行管理任務。
什么是主動模式和被動模式?
您可以通過兩種方式開發(fā)客戶端和服務器之間的交互。這取決于您用于建立連接以傳輸數據的方法。兩種模式是主動和被動 FTP 操作模式。
在主動模式的情況下,服務器自己發(fā)起與客戶端的連接,而在被動模式的情況下,客戶端發(fā)起連接。FTP 協(xié)議使用兩種類型的連接:控制和數據傳輸。
在數據傳輸連接的情況下,您可以看到客戶端的主動和被動模式。但是,控制連接對于通信也是必不可少的,因為服務器通過控制連接接收命令。
主動模式和被動模式之間的顯著區(qū)別在于誰發(fā)起連接和非匿名服務器來分離這些文件和用戶。在主動模式的情況下,客戶端與服務器建立控制連接,同時服務器建立連接以傳輸數據。但是,在被動模式的情況下,客戶端啟動數據和控制連接。此外,數據傳輸到的端口也不同。
如何建立 FTP 主動模式
它從建立控制連接開始。為此,將在客戶端上創(chuàng)建一個臨時端口,范圍從 1024 到 65535,用于控制和數據連接。客戶端將請求發(fā)送到服務器以啟動連接。在非活動模式下,將發(fā)生以下步驟。
- 首先,客戶端將請求發(fā)送到端口為 21 的服務器。
- 服務器將響應新創(chuàng)建的臨時客戶端端口。
- 之后,客戶端確認傳入的連接。
- 客戶端將發(fā)送指定詳細信息的 FTP PORT 命令,例如哪種模式(在這種情況下是活動的)、 IP 地址和端口號。
- 服務器將確認傳入的命令。
- 客戶端將告訴服務器執(zhí)行特定任務。
- 然后,服務器使用端口號 20 創(chuàng)建數據連接。
- 客戶端將響應來自服務器的請求。
- 確認連接后,服務器將允許來自客戶端的數據。
如何建立 FTP 被動模式
這個過程與主動模式操作完全不同。以下是使用被動模式所遵循的步驟。
- 客戶端使用端口號 21 從其 1024 - 65535 之間的臨時端口向服務器發(fā)送請求。
- 服務器將向臨時客戶端端口發(fā)送響應。
- 然后客戶端確認傳入的連接。
- 客戶端發(fā)送指定使用被動 FTP 模式的 PASV 命令。
- 服務器確認并發(fā)送其 IP 地址和端口號以啟動數據連接。
- 客戶端使用數據傳輸端口向服務器發(fā)出的端口發(fā)送建立連接的請求。
- 然后服務器確認傳入的連接。
- 客戶端創(chuàng)建一個連接。
- 客戶端告訴服務器何時傳輸數據。
更改 FTP 以使用不同的端口號
要將 FTP 更改為使用默認端口號以外的其他端口號,您可以按照以下步驟操作。
根據以下示例,您可以將標準 FTP 端口 21 替換為 10022。
1.在 /etc/services 文件中更改 FTP 的端口號,如下所示。
ftp 10022/tcp # File Transfer [Control]
ftp 10022/udp # File Transfer [Control]
2.使用以下命令創(chuàng)建 SRCsubsvr ODM 文件的備份。
# cd /etc/objrepos#
cp SRCsubsvr SRCsubsvr.backup
3.更改 ODM 類 SRCsubsvr
- 導出 ODMDIR:
# export ODMDIR=/etc/objrepos
4.從 SRCsubsvr ODM 類中提取 FTP 條目:
# odmget -q sub_type="ftp" SRCsubsvr > /tmp/ftp.odm.out
5.現(xiàn)在,從 SRCsubsvr ODM 類中刪除當前的 FTP 條目:
# odmdelete -q sub_type="ftp" -o SRCsubsvr
預期輸出:
0518-307 odmdelete: 1 objects deleted.
- 現(xiàn)在,更改 /tmp/FTP.odm.out 中 FTP 節(jié)的 sub_code 字段
- 這是 ftp.odm.out 中的初始條目:
SRCsubsvr:
sub_type = "ftp"
subsysname = "inetd"
sub_code = 21
Change sub_code to the new port (for example, port 10022):
SRCsubsvr:sub_type = "ftp"
subsysname = "inetd"
sub_code = 10022
- 現(xiàn)在,保存文件更改。
- 將新的 FTP 條目添加到 SRCsubsvr ODM 類:
# odmadd /tmp/FTP.odm.out
- 驗證條目是否存在,并顯示新的端口號:
# odmget -q sub_type="ftp" SRCsubsvr
- 刷新inetd重啟ftpd
# refresh -s inetd
- 現(xiàn)在,您需要驗證新的 FTP 端口是否處于監(jiān)聽狀態(tài):
# netstat -an | grep 10022
- 如果端口不處于監(jiān)聽狀態(tài),則必須重啟inetd:
# stopsrc -s inetd
# startsrc -s inetd
- 測試與端口 21 和 10022 的 FTP 連接
解決防火墻問題
更改 FTP 使用的默認端口號后,您可能會收到以下錯誤。您可以對 防火墻 設置進行必要的更改,以使該過程順利運行。
由于 FTP 數據端口的動態(tài)特性,您在配置防火墻時可能會遇到困難。在主動模式的情況下,實際問題發(fā)生在客戶端。如果防火墻的設置是斷開非內部發(fā)起的連接,則服務器無法建立數據連接。因此,您必須正確指定客戶端端口并創(chuàng)建允許的規(guī)則以使防火墻正常工作。
但在被動模式的情況下,問題出在服務器端。此外,您可以在服務器設置中指定被動 FTP 端口范圍內的范圍并為其創(chuàng)建規(guī)則。您可以按照以下步驟完成此操作。
打開IIS管理器,點擊Start Page下的Server名稱,雙擊FTP Firewall Support,將1025-65535的范圍提供給Data Channel Port Range。
轉到 FTP 站點 -> 選擇 FTP 防火墻支持,并提供您的外部 IP 地址。確保在配置防火墻時對這些端口范圍進行網絡地址轉換 (NAT)。
結論
FTP 端口對于在客戶端和服務器之間建立連接是必不可少的。確保您的 FTP 偵聽正確的端口,否則您可能會發(fā)現(xiàn)連接到服務器具有挑戰(zhàn)性。FTP 建立了兩種不同的連接,一種用于傳輸命令,另一種用于傳輸實際數據。數據連接使用 FTP 端口 20。默認情況下,F(xiàn)TP 使用端口號 21 來指定控制連接。您可以更改默認端口以確保安全或避免端口 20 和 21 上的網絡擁塞。FTP 是一種必要的協(xié)議,可以在網絡上順暢地傳輸任何數據。我們已經提到了一些命令來幫助您更改默認端口 21。如果遇到任何問題,您可以進行上述防火墻設置以避免拒絕連接錯誤。