将 TCP 连接转发到另一台服务器

时间:2021-04-14 19:55:48

标签: rust tcp connection

假设我有两个游戏服务,一个登录服务器和一个游戏服务器。当客户端连接到登录服务器进行身份验证时,如果身份验证成功,我想将它们传输到游戏服务器。这个游戏服务器是它自己在另一台主机上的服务。我将如何转发这个已建立的 TCP 连接?

我想打开两个服务器之间的持久连接,然后通过现有的 TCP 数据发送,但是我不确定在客户端和登录之间建立连接时断开客户端和登录之间的连接的后续步骤游戏服务器。我是否会向客户端发送数据包以建立与游戏服务器的单独连接,同时将必要的数据从登录名转发到游戏服务器?这似乎没有必要,而且可能不安全。

我正在使用的语言是 rust,但抽象的答案也会有很大帮助。

1 个答案:

答案 0 :(得分:-1)

您要查找的术语是“代理”。如果您只是传递数据,那么有一些工具可以帮助您解决这个问题,这样您就不必再费力地管理 TCP 级调用。

Nginx can do this,这可能是一个不错的起点。

stream {
    server {
        listen     12346;
        #TCP traffic will be forwarded to the specified server
        proxy_pass backend.example.com:12346;
    }
}
相关问题