一台物理机上可以有多个虚拟机监听同一个端口号吗?

一台物理机上可以有多个虚拟机监听同一个端口号吗?

我想知道是否有可能在一台物理机上让多个虚拟机监听同一个端口号。

我现在面临的问题是,我有一个软件,它通过特定端口号与外部机器进行通信。我在各个地方有“X”台外部机器,它们都使用同一个端口号。因此,我不需要购买“X”台本地机器来与所有机器进行通信,而是要看看是否可以使用一台使用虚拟化技术的机器来解决这个问题。

我记得遇到过 VMWare 播放器,它能够将特定的物理网络端口桥接到虚拟机,这样从理论上就可以解决这个问题。

但是还有其他解决方案吗?那些不需要我在机器上获得“X”个物理网络端口的解决方案?

答案1

如果虚拟机有不同的 IP,则有可能。

答案2

使用多个 IP 地址,每个监听服务 1 到 X 一个。

如果每个侦听器一个容器或虚拟机,很简单,每个一个 IP 地址。使用容器或虚拟机网络进行路由。

或者,您可以在一个主机上向一个接口添加多个 IP 地址。将每个侦听服务实例绑定到其自己的 IP 地址。换句话说,不要让它侦听未指定的地址::。一个众所周知的例子是 Apache httpd 有一个Listen指示可以为其指定 IP 地址。对于此软件,请使用类似的方法。

如果没有足够的 IP 地址来执行此操作,请实施 IPv6。


所有这些都假设您只使用 TCP/IP 进行路由。如果您有一个应用程序感知负载平衡器,那么它可以启用比 TCP 5 元组更多的标准。

相关内容