1

所以基本上我正在创建一个在线游戏。我有一台保存所有用户名/密码信息的服务器(登录服务器),然后是一台或多台托管游戏的服务器(游戏服务器)。客户端连接到验证其凭据的登录服务器,检查他们在哪个游戏服务器上,然后告诉该服务器连接到客户端。

我对安全性知之甚少,但我认为让客户端监听来自其游戏服务器的连接而不是让游戏服务器监听客户端会更安全。我认为这至少会使 DDoS 攻击更容易被阻止。

问题是我读到如果您的服务器位于某些类型的路由器或负载平衡器之后,您将无法轻松获取客户端的 ip。我需要登录服务器告诉游戏服务器要连接到谁......除非我可以转移一个打开的连接。我相信某些游戏具有服务器集群,可以让客户端在一个或另一个之间浮动,所以我认为可以通过某种方式将连接从一台服务器传递到另一台服务器。一般是怎么做的?

也许我已经走远了?

4

2 回答 2

2

为了避免 DDoS,一种可能的解决方案是login server连接到game server并要求它打开一个端口,它会这样做,game server然后可以返回随机数port numberlogin server然后可以将其发送到client.

然后client假设有一分钟的窗口连接到它的随机分配的端口,然后game server才能关闭该端口。

只是一个想法。

Client connects to Login Server:Standard Port
Login Server connects to Game Server:Standard Port
Game Server sends Random Port to Login Server
Login Server sends Random Port to Client
Client connects to Game Server:Random Port
于 2013-02-19T14:42:07.483 回答
1

您不能像您想的那样传输连接,您基本上必须告诉客户端创建另一个到新服务器的连接。

您可以使用某种传输命令来响应客户端,该命令说明您希望它们连接的新游戏服务器 IP 和端口。它可以连接到新服务器并与现有服务器断开连接。

于 2013-02-19T14:40:18.867 回答