Networking

如何創建支持多主機的 TCP 代理?

  • July 27, 2021

我想創建一個支持多個主機的 TCP 代理。我看到的範例是使用 DNS 伺服器將特定主機指向 TCP 代理,該代理在其中硬編碼了主機。TCP 代理不能處理多個主機,因為如果所有主機都被路由到 TCP 代理,代理將不知道將數據發送到哪裡。有沒有辦法解決這個問題?

TCP 在 IP 上工作,而 IP 沒有主機(名稱)的概念,而只有 IP 地址。

因此,TCP 也只知道 IP 地址,而不知道主機名。

如果您想要處理主機名,您需要 TCP 之上的協議(例如:HTTP、SSH 等)或在使用 TCP 之前將名稱轉換為 IP 地址,因為 DNS 通常提供。

或者您需要您的“TCP”代理來偵聽單獨的埠並根據訪問的埠代理事物。但是,您仍然存在將名稱映射到現在不僅是(代理的)IP 地址而且還映射其埠的問題,這對於 DNS 來說是可能的但更困難(如果您控制客戶端,您可以使用SRV記錄或在未來SVCB的)。

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