链接域名到端口号

我有一个[游戏]服务器(CentOS),有大约10个使用的端口。 特别是对于一款游戏,我有两台服务器:一台是私人服务器,一台是公共服务器。 他们的IP是一样的,所以为了不同他们之间的用户必须使用mydomain.com:[portnumber]。 有没有一种方法,我可以configurationCentOS自动采取类似subdomain.mydomain.com,并将其转换为mydomain.com:[portnumber]或简单的本地主机:[端口号]? 这是一个DNS是什么?

谢谢

如果这完全是您的应用程序,并且您可以控制您的DNS,则可以为您的游戏定义一个SRVlogging 。 您的客户必须了解您已经定义了_gamename._tcp.example.com SRVlogging,以便为用户提供使用example.com访问正确端口上的服务器的方法。

听起来很复杂,几乎不可行,如果你只是使用现有的游戏服务器并托pipe它,但它是在DNS中包含端口号的唯一方法。

如果这不是可能的,只需要公共服务器的“正常”端口(以便用户不必担心),以及专用服务器的“其他”端口(您必须指定端口,但是用户群是有限的,所以“总的忧虑”是较小的。)

您可以通过编辑apache httpd.conf文件并添加虚拟主机redirect来完成此操作。 当然,如果这是你的服务器,你也可以编辑DNSlogging。 例如:

 NameVirtualHost ip.add.of.server <VirtualHost ip.add.of.server> ServerName yourserver.domain.com Redirect permanent / http://yourserver.domain.com:PORT </VirtualHost> <VirtualHost ip.add.of.server> ServerName yourserver2.domain.com Redirect permanent / http://yourserver.domain.com:PORT </VirtualHost> 

yourserver2.domain.com可以是同一台服务器,您必须在DNS上添加新的Alogging。

不幸的是,除非它被视为你正在运行的特定游戏的一个function,否则无法实现这一点。

您的select是将单独的公共IP绑定到同一游戏的每个不同实例(如果您只持有一个公共IP,则不是一个选项),或者在向人们告知服务器时指定端口号。

在处理HTTPstream量时有一个解决方法,但是这只能工作,因为连接的客户端与服务器交谈并向服务器提供关于它想要连接的信息(即,它告诉服务器连接到什么DNS名称它试图达到,当它连接)。 这使得服务器可以select向客户提供什么内容。 但是,它不会碰到任何不同的端口。

你有这些解决scheme很容易实现:

  • 防火墙中的DNAT规则将本地stream量的目标端口更改为专用于本地stream量的端口
  • 在external_IP:same_port上监听外部应用程序,并在internal_IP:same_port上监听内部应用程序。 通过这种方式,您可以运行两个应用程序,并使用相同的端口,但使用不同的IP。