虚拟机端口是如何工作的

我有一个关于VM端口的问题。

假设我有一台虚拟机和一台主机。 主机上的开放端口只有80,22,443。 如果我打开端口80,22,443 VM它应该工作。 但是,如果我在VM上打开端口21,它会工作吗? 如果有效,是否意味着Host上的端口21也被打开?

我的理解是networkingstream量从VM的虚拟networking适配器到主机的物理networking适配器。 所以这两个networking适配器上的端口应该匹配。 我说得对吗?

在大多数types1的pipe理程序中,pipe理程序的networking栈是操作物理网卡的。 在这种情况下,系统pipe理程序操作系统只是将任何结束于虚拟NIC上的数据包放在物理nic上(同样,将数据包从Pnic放在适当的vnic上)。 虽然可以在组合中包含虚拟防火墙,但更改pipe理操作系统本身的设置不会影响任何访客的stream量。

在types2pipe理程序中,遵循类似的过程,虽然在这种情况下(因为有一个托pipepipe理程序的操作系统),所以可以通过主机OSnetworking堆栈来路由通信量,这将允许防火墙设置应用于入站和出站通信。

通常,在虚拟机上打开端口不会导致它们在主机,networking防火墙或其他任何地方打开。 但是,这取决于虚拟主机的networking设置。 如果stream量由主机进行NAT,则其防火墙可能会对其进行过滤。 如果接口是桥接的(虚拟机似乎是networking上的实际主机),主机的防火墙不太可能会对其进行过滤。 如果您使用的是仅主机networking,打开虚拟机上的任何端口将不会影响外部世界,只不过主机(可能是该主机上的其他虚拟机)将能够连接到该端口上的虚拟机。

将虚拟机configuration为共享networking适配器时,主机和guest虚拟机在本地networking上具有不同的IP地址,可用于区分主机上的端口80与guest虚拟机上的端口80的连接。