Iis

在 NAT 之後執行的 FTPS 伺服器需要多少個數據通道埠?

  • February 26, 2021

正如標題所述,我目前有一個 FTP 伺服器,可通過在路由器後面執行 NATed 的 FTP 或 FTPS(顯式)訪問。伺服器正在執行帶有 IIS 8.0 的 Windows Server 2012 R2(我相信這是 2012r2 附帶的版本)。

伺服器只會被少數人使用,不到 10 人。

伺服器目前執行正常,從路由器轉發埠 21 和 30850-30859(數據通道)。我的問題是,FTPS 需要多少個數據通道埠?每個同時文件傳輸一個嗎?還是同時使用者?或者…?

您需要足夠的數據埠,以便客戶端 IP - 客戶端隨機埠 - 伺服器數據埠組合唯一標識任何 FTP 會話(傳輸)。

埠號用作控制連接上的傳輸請求和數據連接之間的連結。請注意,數據連接上沒有“協議”,客戶端可以使用它來告訴它它要求什麼。埠號是伺服器擁有的唯一唯一資訊。

唯一性有多強可能取決於伺服器實現。我相信大多數伺服器只要求埠在客戶端請求傳輸之後和連接到數據埠之前的那一小段時間內是唯一的。因此,如果您有 10 個埠和 11 個客戶端同時請求傳輸,則第 11 個可能會被拒絕。

如果兩個客戶端同時請求傳輸,並且伺服器會為兩者使用相同的埠號(沒有任何其他備用埠),則伺服器將無法判斷要傳輸的文件。當然,伺服器可以使用客戶端 IP 進行決策(實際上許多 FTP 伺服器會驗證客戶端 IP 是否與控制連接上使用的 IP 相匹配以確保安全)。

但是當客戶端請求傳輸時,現實生活中的實現會打開一個唯一的偵聽套接字。因此,當沒有可用的埠號時,伺服器無法開始偵聽,拒絕傳輸,因此它甚至不會遇到上述問題。

另一方面,Bitvise“SSH”伺服器內置的 FTP 伺服器實際上只支持單個數據埠。伺服器需要 TLS 加密和會話恢復。它使用 TLS 會話來連結控制和數據連接。

另請參閱為什麼 FTP 被動模式需要一個埠範圍而不是一個埠?

引用自:https://serverfault.com/questions/709984