多宿主计算机上有多个服务器进程,其中一个进程绑定到 0.0.0.0

多宿主计算机上有多个服务器进程,其中一个进程绑定到 0.0.0.0

我开发了一个数据代理服务,该服务将单个设备数据重复传输到单个接口上的多宿主 IP 地址上。每个重复服务器都是一个单独的进程,绑定到特定的 TCP IP 和端口(例如 10.0.34.50:29950 和 10.0.34.51:29950)。此服务器上还有另一个进程,它也绑定到 0.0.0.0:29950。

在 Ubuntu 上,客户端与单个多宿主 IP 的连接成功路由到那些重复服务器进程。在 Red Hat 8.8 上,绑定到 0.0.0.0:29950 的进程接受所有传入连接。

客户端应该能够连接到指定的各个多宿主 IP,而不是总是连接到绑定到 0.0.0.0(监听所有接口/子网)的进程。因为这似乎在 Ubuntu 上有效,而不是在 Red Hat 上有效。我遗漏了一些东西。

我还没有发现这些操作系统之间存在配置差异。

我一直在研究可调参数,例如 net.ipv4.conf.all.rp_filter net.ipv4.conf.all.arp_filter net.ipv4.conf.all.accept_source_route

我想知道这是否需要基于策略的路由?我也会尝试一下。

答案1

0.0.0.0是个未指定地址. 绑定套接字意味着此主机,即在任何接口上或使用任何 IP 地址。

因此,您描述的行为似乎是正确的。您需要将该服务器配置为仅使用您想要的地址。

如果该服务器/服务无法按要求配置,您可以使用防火墙过滤(iptables)来限制连接。

相关内容