客户端使用什么主机名连接到我的TCP服务器?

客户端使用什么主机名连接到我的TCP服务器?,tcp,server,port,Tcp,Server,Port,在http中,客户端提供用于连接服务的主机名。现在,对于裸TCP连接,有没有类似的方法?我的场景是,我有一个服务,它有多个开放的TCP端口,工作正常,但为了方便起见,我希望使用相同的端口和子域。我可以在上面添加任何层(如负载平衡器)或更改服务吗?我可以控制大部分事情,基本上什么都可以 例如: 今天,我可以连接到两个TCP服务,如:foobar.com:1001和foobar.com:1002。是否可以让例如service-1.foobar.com:1000转到foobar.com:1001和se

在http中,客户端提供用于连接服务的主机名。现在,对于裸TCP连接,有没有类似的方法?我的场景是,我有一个服务,它有多个开放的TCP端口,工作正常,但为了方便起见,我希望使用相同的端口和子域。我可以在上面添加任何层(如负载平衡器)或更改服务吗?我可以控制大部分事情,基本上什么都可以

例如:
今天,我可以连接到两个TCP服务,如:
foobar.com:1001
foobar.com:1002
。是否可以让例如
service-1.foobar.com:1000
转到
foobar.com:1001
service-2.foobar.com:1000
转到
foobar.com:1002
不同的服务可以绑定到同一端口,但在不同的IP上。因此,不同的域应解析为不同的IP:端口组合[其中所有服务的端口相同]。您可以使用代理服务作为HA代理,将连接路由到最终目的地。

如果我根据您的示例正确理解了您的问题,则不可能。在这种情况下,HTTP和TCP连接之间没有区别

在这两种情况下,主机名都被简单地解析为ip地址。如果将foobar.com、service-1.foobar.com、service-2.foobar.com的DNS解析设置为指向同一ip地址,则它们都将转到同一台计算机

我有时需要让服务在不同的端口上运行,而不是在外部可访问的端口上运行。因此,如果您在Linux上运行,那么只需使用iptables进行端口转发即可

您可以找到设置端口转发的其他堆栈溢出问题/答案


因此,如果没有不同的IP号码,就无法做到这一点。正如我所怀疑的那样。你有这方面的消息来源吗?不确定,我有你的问题。你想把
foo..:1001
foo…:1002
隐藏在
Proxy1:1000
后面,而
Proxy2:1000
不是吗?是的,没错。或者不是必要的隐藏,如果foo..:1001等仍然可用,也可以,这更像是一种速记。因此代理服务,如HA代理,应绑定在Proxy1:1000和Proxy2:1000上。每个人都有自己的目的地。什么是“HA代理”?我知道如果所有主机都有不同的IP,那么这很容易设置。因此,澄清一下,不使用不同的IP号码是不可能的。你有什么消息来源吗?