我有一个关于 VM 端口的问题。
假设我有一台虚拟机和一台主机。主机上打开的端口只有 80、22、443。如果我打开端口 80、22、443,虚拟机应该可以正常工作。但是,如果我打开虚拟机上的端口 21,它会正常工作吗?如果可以正常工作,是否意味着主机上的端口 21 也打开了?
我的理解是,网络流量从虚拟机的虚拟网络适配器流向主机的物理网络适配器。因此,这两个网络适配器上的端口应该匹配。我这样说对吗?
答案1
在大多数 1 型虚拟机管理程序中,虚拟机管理程序的网络堆栈负责操作物理 NIC。在这种情况下,虚拟机管理程序操作系统只是将最终到达虚拟 NIC 的所有数据包放到物理 NIC 上(同样,反过来将来自 Pnic 的数据包放到相应的 vnic 上)。虽然可以将虚拟防火墙包含在组合中,但更改管理操作系统本身的设置不会影响任何来宾上的流量。
在类型 2 虚拟机管理程序中遵循类似的过程,尽管在这种情况下(因为有一个托管虚拟机管理程序的操作系统),可以通过主机操作系统网络堆栈路由流量,这将允许防火墙设置应用于入站和出站流量。
答案2
一般来说,打开虚拟机上的端口不会导致主机、网络防火墙或任何其他地方也打开这些端口。但是,这取决于虚拟主机的网络设置。如果流量由主机进行 NAT,则其防火墙可能会过滤该流量。如果接口是桥接的(虚拟机看起来像网络上的实际主机),则主机的防火墙不太可能过滤该流量。如果您使用的是仅主机网络,则打开虚拟机上的任何端口都不会对外界产生影响,只是主机(以及该主机上的其他虚拟机)将能够通过该端口连接到虚拟机。
答案3
当虚拟机配置为共享网络适配器时,主机和客户机在本地网络上具有不同的 IP 地址,可用于区分与主机上的端口 80 和客户机上的端口 80 的连接。