只是好奇,如果这是可能的。 让我们假设我在一个系统上运行一对irc服务器(或任何其他的)与不同的端口 – 我想有东西听一个单一的端口,并转发基于主机名的数据包 – 任何连接到A.foo.bar应被转发到一个端口,任何连接到B.foo.bar应该被转发到另一个。 大多数代理似乎是为http,而且,这不是我想到的用例。
我目前正在运行的Ubuntu服务器9.04和10.04,但我愿意切换到另一个免费的操作系统来做到这一点。
我假设A.foo.bar和B.foo.barparsing为相同的IP。
没有某种应用层代理就没有办法做到这一点。 您可以在客户端上使用HTTP或SOCKS代理连接,以便根据主机名来切换连接。 你也可以build立一个IRC MitM来检测客户端正在尝试连接的主机名,然后把它交给正确的服务器,但是我不知道IRC协议是否会提供足够的信息来做到这一点。
您可以使用SQUID作为透明代理来完成此操作。 它不一定是HTTP。
但是,真的,你有两个不同的主机名。 您可以将它们指向两个不同的IP并相应地禁止stream量。