我想创建一个支持多个主机的 TCP 代理。我看到的示例是使用 DNS 服务器将特定主机指向 TCP 代理,该代理在其中硬编码了主机。TCP 代理不能处理多个主机,因为如果所有主机都被路由到 TCP 代理,代理将不知道将数据发送到哪里。有没有办法解决这个问题?
我想创建一个支持多个主机的 TCP 代理。我看到的示例是使用 DNS 服务器将特定主机指向 TCP 代理,该代理在其中硬编码了主机。TCP 代理不能处理多个主机,因为如果所有主机都被路由到 TCP 代理,代理将不知道将数据发送到哪里。有没有办法解决这个问题?
TCP 在 IP 上工作,而 IP 没有主机(名称)的概念,而只有 IP 地址。
因此,TCP 也只知道 IP 地址,而不知道主机名。
如果您想要处理主机名,您需要 TCP 之上的协议(例如:HTTP、SSH 等)或在使用 TCP 之前将名称转换为 IP 地址,因为 DNS 通常提供。
或者您需要您的“TCP”代理来侦听单独的端口并根据访问的端口代理事物。但是,您仍然存在将名称映射到现在不仅是(代理的)IP 地址而且还映射其端口的问题,这是可能的,但使用 DNS 更困难(如果您控制客户端,您可以使用
SRV
记录或在未来SVCB
的)。