当前位置:首页 > 物理机 > 正文

虚拟机如何共享主机文件?

在虚拟机中共享物理机文件:安装对应工具(如VMware Tools/VirtualBox增强功能),设置共享文件夹并指定路径;或通过网络共享协议(如SMB/NFS)访问物理机共享目录。

在虚拟机和物理机之间高效共享文件:详细指南

使用虚拟机(VM)时,一个非常常见且重要的需求就是在虚拟机(Guest OS)和宿主机(物理机,Host OS)之间方便地传输和共享文件,无论是安装软件、备份数据,还是协作开发,顺畅的文件交换都至关重要,本文将详细介绍几种主流且安全的文件共享方法,帮助您选择最适合自己场景的方案。

核心原则:安全与便捷

在开始操作之前,请牢记两个关键点:

  1. 安全性: 不要共享整个系统盘或包含敏感数据的文件夹,仅共享必要的特定文件夹。
  2. 增强工具: 绝大多数共享方法都需要在虚拟机内安装对应的“增强功能”或“集成工具”(如 VMware Tools, VirtualBox Guest Additions, Hyper-V Integration Services),这些工具不仅提供文件共享功能,还能显著提升虚拟机的整体性能(如显卡、鼠标集成等),请务必先安装它们。

使用“共享文件夹”(推荐 – 最便捷)

这是 VMware Workstation/Player 和 VirtualBox 提供的原生、最直接的文件共享方式,它本质上是在宿主机上指定一个文件夹,然后将其“映射”到虚拟机内部,像一个本地驱动器或网络位置一样访问。

适用场景: VMware Workstation/Player, VirtualBox;需要频繁、快速地在固定位置交换文件。

操作步骤(以 VMware Workstation 为例):

  1. 安装 VMware Tools:

    • 启动您的虚拟机,登录到客户机操作系统(如 Windows 或 Linux)。
    • 在 VMware Workstation 菜单栏,点击 虚拟机 (VM) -> 安装 VMware Tools,如果使用 Player,通常是 Player -> 管理 -> 安装 VMware Tools
    • 虚拟机会自动加载一个虚拟光驱(CD/DVD 驱动器),里面包含安装程序。
    • 进入虚拟机系统,打开此光驱,运行安装程序(通常是 setup.exe.msi 文件),按照提示完成安装,通常需要重启虚拟机。
    • (对于 VirtualBox: 类似,菜单为 设备 -> 安装增强功能,然后在虚拟机内运行加载的安装程序)。
  2. 在宿主机设置共享文件夹:

    • 确保虚拟机处于运行状态已关闭状态(在挂起状态可能无法设置)。
    • 在 VMware Workstation 中,右键点击左侧列表中的虚拟机 -> 设置
    • 转到 选项 选项卡 -> 共享文件夹
    • 选择 总是启用(推荐,这样虚拟机开机即能用)或 在下次关机或挂起前启用
    • 点击右侧的 添加... 按钮。
    • 浏览宿主机的文件夹: 选择您想在宿主机上共享给虚拟机的具体文件夹D:VM_Shared)。强烈建议不要共享整个盘符或系统关键目录。
    • 命名共享: 给这个共享起一个简短的名字(如 HostShare),这个名字将在虚拟机内部显示。
    • 设置访问权限:
      • 启用此共享:勾选。
      • 只读:如果虚拟机只需要读取宿主机文件,不需要写入,勾选此项更安全。
      • 映射为网络驱动器 (Windows 虚拟机):通常勾选,方便访问。
    • 点击 完成 -> 确定 保存设置。
    • (对于 VirtualBox: 在虚拟机运行时,点击菜单 设备 -> 共享文件夹 -> 共享文件夹设置 -> 点击右侧的添加按钮(带加号的文件夹图标),后续步骤类似)。
  3. 在虚拟机内访问共享文件夹:

    • Windows 虚拟机:
      • 如果设置了“映射为网络驱动器”,打开 此电脑文件资源管理器,通常能在 网络位置 下看到一个名为 VMware Shared FoldersVirtualBox Shared Folders 的驱动器,里面就是您命名的共享(如 HostShare)。
      • 如果没有自动映射,也可以打开 文件资源管理器 -> 地址栏输入 \vmware-hostShared Folders\vboxsvr (VirtualBox) 然后回车,里面会列出所有共享的文件夹。
    • Linux 虚拟机:
      • 共享文件夹通常挂载在 /mnt/hgfs 目录下(VMware)或 /media/sf_ 开头的目录下(VirtualBox,名字与共享名相关),您可能需要手动查看或挂载。
      • 打开终端,输入 ls /mnt/hgfs (VMware) 或 ls /media/sf_* (VirtualBox) 查看共享文件夹,如果看不到,可能需要手动挂载或检查权限(有时需要将您的用户添加到 vboxsf 组:sudo usermod -aG vboxsf $USER,然后重启虚拟机)。

优点: 设置相对简单,性能好(接近本地磁盘速度),使用方便,重启后自动生效。
缺点: 依赖于特定的虚拟机软件和其增强工具;在 Linux 虚拟机中可能需要额外配置权限。

虚拟机如何共享主机文件?  第1张


使用网络共享(SMB/CIFS 或 NFS)

这是最通用、跨平台的方法,不依赖于特定的虚拟机软件,它利用宿主机和虚拟机都支持的网络文件共享协议(Windows 常用 SMB/CIFS,Linux 常用 NFS)来实现文件共享,这就像是在局域网中访问另一台电脑的共享文件夹。

适用场景: 任何虚拟机软件(VMware, VirtualBox, Hyper-V 等);任何客户机操作系统(只要支持网络共享协议);需要更灵活、更接近真实网络环境的共享;宿主机和虚拟机能通过网络互相访问。

操作步骤(以宿主机是 Windows,虚拟机是 Windows/Linux 为例):

  1. 在宿主机上设置共享文件夹:

    • 在宿主机(物理机)上,右键点击您想共享的文件夹 -> 属性
    • 转到 共享 选项卡 -> 点击 高级共享
    • 勾选 共享此文件夹
    • 可以设置共享名(默认是文件夹名)。
    • 点击 权限 -> 添加或设置用户(如 Everyone)的访问权限(读取、更改/完全控制)。注意:为安全起见,建议给特定用户设置权限,避免使用 Everyone 或给予最小必要权限(如只读)。 完成后确定。
    • (可选但重要)获取宿主机 IP 地址: 在宿主机上打开命令提示符 (cmd),输入 ipconfig,记下连接网络的适配器的 IPv4 地址(如 168.1.100)。
  2. 配置虚拟机网络:

    • 确保虚拟机的网络连接模式设置为 桥接模式 (Bridged)NAT 模式 (NAT)
      • 桥接模式: 虚拟机会获得一个与宿主机同网段的独立 IP 地址,就像局域网中的另一台真实电脑,宿主机和虚拟机可以像两台独立机器一样互相访问。
      • NAT 模式: 虚拟机通过宿主机的 IP 地址上网。默认情况下,宿主机可以访问虚拟机,但虚拟机访问宿主机需要额外配置端口转发或宿主机防火墙规则(较复杂)。 对于文件共享,桥接模式通常更简单直接
    • 在虚拟机内,确保网络连接正常(可以上网)。
  3. 在虚拟机内访问宿主机的共享:

    • Windows 虚拟机:
      • 打开 文件资源管理器
      • 在地址栏输入 \ + 宿主机的 IP 地址\192.168.1.100)然后回车。
      • 可能会提示输入用户名和密码,输入您宿主机 Windows 系统的用户名和密码(即您登录物理机时用的账户)。
      • 成功后会看到宿主机上所有共享的文件夹列表,双击进入您需要的共享文件夹即可访问。
    • Linux 虚拟机:
      • 打开文件管理器(如 Nautilus, Dolphin)或使用终端。
      • 图形界面: 通常在“网络”或“连接到服务器”的地方,输入 smb:// + 宿主机的 IP 地址smb://192.168.1.100),然后按提示输入宿主机用户名密码。
      • 终端挂载:
        • 创建挂载点:sudo mkdir /mnt/host_share
        • 挂载共享:sudo mount -t cifs //192.168.1.100/共享名 /mnt/host_share -o username=宿主机用户名,password=宿主机密码 (将 共享名宿主机用户名宿主机密码 替换为实际值),注意密码明文不安全,可考虑使用凭证文件。
      • (如果宿主机是 Linux 共享 NFS): 宿主机需配置 NFS 服务端并导出目录,虚拟机使用 mount -t nfs 宿主机IP:/共享路径 /本地挂载点 挂载。

优点: 通用性强,不依赖特定虚拟机软件;模拟真实网络环境;方便多台虚拟机或物理机共享。
缺点: 设置相对复杂(尤其是网络配置和权限);速度可能略低于共享文件夹(但通常足够快);需要配置网络和防火墙(确保文件共享端口如 SMB 的 445 开放)。


使用拖放和复制粘贴(简单小文件)

VMware 和 VirtualBox 在安装了增强工具后,通常提供基本的拖放 (Drag-and-Drop) 和复制粘贴 (Copy-Paste) 功能。

适用场景: 传输少量、小体积的文件或文本片段;临时性操作。

操作步骤:

  1. 确保增强工具已安装并启用相关功能:
    • 在 VMware/VirtualBox 的虚拟机设置中(通常在 选项常规 -> 高级),检查 拖放复制粘贴 功能是否已启用(通常默认是双向 双向主机到客户机/客户机到主机)。
  2. 使用:
    • 拖放: 直接在宿主机桌面/文件夹选中文件,拖拽到虚拟机窗口内(或反之)。
    • 复制粘贴: 在宿主机复制文件或文本,在虚拟机内点击鼠标右键选择粘贴(或使用快捷键 Ctrl+V / Cmd+V);反之亦然。

优点: 极其简单直观,适合偶尔传输小文件。
缺点: 对大文件或大量文件传输效率低、不稳定;功能可能受限(如某些 Linux 桌面环境支持不佳);不是严格意义上的“共享”,是单向传输操作。


使用外部存储设备(U盘/移动硬盘)

这是最物理、最独立的方法。

适用场景: 虚拟机软件不支持其他方法;需要离线转移大文件;临时在物理机和其他机器间转移文件。

操作步骤:

  1. 将 U 盘或移动硬盘插入物理机。
  2. 在虚拟机软件(如 VMware, VirtualBox)的虚拟机运行时,点击菜单:
    • VMware: 虚拟机 -> 可移动设备 -> 找到您的 USB 设备 -> 连接 (断开主机)。
    • VirtualBox: 设备 -> USB -> 选择您的 USB 设备。
  3. 虚拟机操作系统会识别到插入的 USB 设备(可能需要安装驱动),您就可以像在物理机上一样读写 U 盘了。
  4. 使用完毕后,先在虚拟机内安全弹出设备,再在虚拟机软件菜单中断开连接,最后在物理机上拔下 U 盘。

优点: 完全独立于网络和软件配置;适合大文件传输或物理转移。
缺点: 需要手动插拔设备;在虚拟机软件中切换设备连接状态;不如前几种方法方便快捷。


选择哪种方法?快速参考

方法 最佳适用场景 优点 缺点
共享文件夹 VMware/VirtualBox;需高性能、便捷的固定共享 简单、快速、稳定、集成好 依赖特定软件和增强工具;Linux权限
网络共享 任何虚拟机软件/系统;需要通用性或模拟真实网络环境 通用、灵活、跨平台 配置较复杂;需网络和权限设置
拖放/粘贴 临时传输小文件或文本 极其简单 不适合大文件/大量文件;可能不稳定
外部设备 大文件离线传输;其他方法不可用时 独立、物理隔离 需要手动操作;不够便捷

重要安全提示与最佳实践

  1. 最小权限原则: 无论是共享文件夹还是网络共享,永远只共享必要的特定文件夹,并设置严格的访问权限(如只读),避免共享整个驱动器或包含系统文件、个人敏感数据的目录。
  2. 使用强密码: 如果使用网络共享,确保宿主机的用户账户使用强密码。
  3. 防火墙: 使用网络共享时,确保宿主机和虚拟机的防火墙允许文件共享协议(如 SMB)的通信,在公共网络环境下尤其要谨慎。
  4. 及时更新: 保持虚拟机软件、增强工具、宿主机操作系统和虚拟机操作系统的更新,以修复安全破绽。
  5. 备份: 重要文件在共享操作前进行备份,避免误操作导致数据丢失。
  6. 防干扰: 确保宿主机和虚拟机都安装了有效的防干扰软件,并保持更新,共享的文件可能成为干扰传播的途径。

在虚拟机和物理机之间共享文件有多种可靠的方法,对于 VMware 或 VirtualBox 用户,“共享文件夹”通常是首选,因为它提供了最佳的便捷性和性能集成。网络共享(SMB) 则是最通用、最灵活的选择,适用于各种环境和虚拟机软件,拖放/粘贴适合小文件临时传输,而外部存储设备则提供了物理隔离的解决方案。

选择哪种方法取决于您的具体需求(虚拟机软件、操作系统、文件大小、使用频率、安全要求),遵循本文的步骤和安全建议,您就能安全、高效地在虚拟世界和物理世界之间架起文件传输的桥梁。


引用说明:

  • 本文所述方法基于 VMware Workstation/Player、Oracle VM VirtualBox 和 Microsoft Hyper-V 的官方文档及广泛认可的 IT 实践。
  • 安全建议参考了网络安全最佳实践(最小权限原则、强密码策略、防火墙配置)。
  • 具体的命令行操作参考了 Linux mount 命令手册页 (man mount) 和 Samba (smb.conf) 文档。
0