只是好奇这是否可能。让我们假设我在具有不同端口的系统上运行一对 irc 服务器(或其他任何东西)——我想让一些东西监听一个端口,并根据主机名转发数据包——任何到 A.foo.bar 的连接都应该转发到一个端口,任何到 B.foo.bar 的连接都应该转发到另一个端口。大多数代理似乎都是针对 http 的,好吧,这不是我想到的用例。
我目前正在运行 ubuntu 服务器 9.04 和 10.04,尽管我愿意切换到另一个免费操作系统来执行此操作。
只是好奇这是否可能。让我们假设我在具有不同端口的系统上运行一对 irc 服务器(或其他任何东西)——我想让一些东西监听一个端口,并根据主机名转发数据包——任何到 A.foo.bar 的连接都应该转发到一个端口,任何到 B.foo.bar 的连接都应该转发到另一个端口。大多数代理似乎都是针对 http 的,好吧,这不是我想到的用例。
我目前正在运行 ubuntu 服务器 9.04 和 10.04,尽管我愿意切换到另一个免费操作系统来执行此操作。
我假设 A.foo.bar 和 B.foo.bar 解析到相同的 IP。
如果没有某种应用层代理,就没有任何方法可以做到这一点。您可以在客户端上使用 HTTP 或 SOCKS 代理连接,以便您可以根据主机名切换连接。您可能还可以设置一个 IRC MitM 来检测客户端尝试连接的主机名,然后切换到正确的服务器,但我不知道 IRC 协议是否会提供足够的信息来做到这一点。
您可以使用 SQUID 作为透明代理来完成此操作。它不必是 HTTP。
但实际上,您有两个不同的主机名。您可以将它们指向两个不同的 IP,并相应地对流量进行 DNAT。