如何建立支援多主機的TCP代理?

如何建立支援多主機的TCP代理?

我想建立一個支援多個主機的 TCP 代理。我看到的範例是 DNS 伺服器用於將特定主機指向 TCP 代理,該代理在其中硬編碼了主機。 TCP 代理無法處理多個主機,因為如果所有主機都路由到 TCP 代理,則代理將不知道要將資料傳送到哪裡。有什麼方法可以解決這個問題嗎?

答案1

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

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

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

或者您需要“TCP”代理來偵聽單獨的連接埠並代理事物,具體取決於存取的連接埠。然而,您仍然面臨著將名稱對應到(代理的)IP 位址和連接埠的問題,這是可能的,但對於 DNS 來說更困難(如果您控制用戶端,您可以使用SRV記錄或在未來SVCB的)。

相關內容