如何创建支持多主机的 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记录来做到这一点)。

相关内容