我如何将所有流量镜像到另一台服务器?

我如何将所有流量镜像到另一台服务器?

我在不同的网络上有 2 个不同的 CentOS 服务器(A 和 B)。如何镜像/重新转换从服务器 A 到服务器 B 的所有端口的所有流量?

服务器 A 运行了许多应用程序,有时会将监听端口更改为另一个随机可用端口。互联网上的任何客户端都可以通过服务器 A 访问这些应用程序,并且它们不应该知道服务器 B 的真实 IP。我该如何为此配置服务器 A?

例如:

  • 服务器 A 的 IP 是30.40.50.60
  • 服务器 B 的 IP 是21.42.53.64

PS 应用程序本身不会泄露有关网络的信息。我只对将流量中继到特定服务器的方法感兴趣

答案1

交换机中的端口镜像是最常见的。这些是物理主机还是虚拟主机?自托管还是基于云?

答案2

我是否正确地认为您的应用程序与 DDoS 规避之类的相关?

如果您的应用程序是 HTTP,那么听起来您可能想要的是反向代理的概念;在这方面,httpd 和 nginx 是常用的,尽管现在有很多选择(特别是如果您喜欢云原生)。还有专门从事此业务的云服务供应商,例如 CloudFlare。

您也可以使用普通 TCP 执行类似操作。Haproxy 就是这样一个例子,如果您想要保持客户端 IP 的可见性并对服务进行程序员级别的控制,那么至少了解 PROXY 协议是什么会很有帮助。

如果是 UDP,您可以使用端口镜像等工具执行此操作。

如果您希望能够在事后重放(和重写)流量,那么诸如 tcprewrite 和 tcpreplay 之类的工具(它们也适用于 UDP)或 Scapy(Python 框架)之类的工具会很有用,具体取决于您的使用情况。

事实上,动态端口对您来说是一个问题吗,或者这是一个有意识的决定,因为我可以想象这两种情况。

相关内容