今天我注意到 VMware 中有一个屏幕显示“正在等待连接”。我认为每次 VM 启动时都会显示该屏幕,但通常很短暂。这次,它在该屏幕上停留了很长时间。
但这是什么意思呢?等待连接?它是不是在以某种方式使用网络?什么?为什么?它是不是在用我所有的私人数据打电话回家?
答案1
我没有使用 VMware,但我可以根据其他虚拟化工具的工作方式做出一个很好的猜测:
VMware“播放器”很可能不是一个独立的应用程序,而是由多个相互连接的组件组成。实际的虚拟化引擎在服务中运行,根本没有用户界面——虚拟机管理 UI 通过某种形式的本地IPC机制,并且 VM 控制台显示通过另一个这样的连接运行。
这种架构非常常见,因为它为开发人员带来了不少优势——GUI 可以以比核心少得多的权限运行;即使 GUI 关闭,VM 或其他服务仍可继续运行;可以通过几个不同的 GUI 和非 GUI 来控制同一个核心,例如命令行工具或网络 API。
因此,当您连接到虚拟机的控制台时,它实际上是在与正在运行的服务建立类似“远程桌面”的连接localhost
。(在 Microsoft Hyper-V 中,它实际上只是一个经过稍微调整的远程桌面。在 Libvirt/Qemu 中,它是 VNC 或 SPICE。)
它可能正在使用通过“localhost”地址(127.0.0.1,[::1])的实际 TCP/IP 连接,或者它可能正在使用某些特定于操作系统的功能(命名管道等)。无论如何,即使使用 TCP/IP 也并不意味着它正在使用实际网络(这是“localhost”地址的全部意义所在)。