插入 VirtualBox 主机的 USB 加密狗并不总是会自动出现在来宾系统中。只有在为虚拟机启用 USB 控制器,并通过 USB 过滤器告知 VirtualBox 要捕获哪台设备之后,VirtualBox 才会将加密狗直通到虚拟机。在此之前,主机操作系统往往会先接管加密狗,这种情况最常见于驱动更新、VirtualBox 升级或 macOS 安全提示之后。
下面介绍 Windows、macOS 和 Linux 主机的原生直通设置、当加密狗仍然拒绝附加时需要运行的检查,以及在需要访问另一台物理机器上的许可证加密狗时,Donglify 何时会成为更好的选择。
在原生直通和 Donglify 之间选择
当加密狗与 VirtualBox 共享同一台机器时,请选择原生直通。当加密狗位于网络中的其他位置时,请选择 Donglify。
| 情况 | 最佳选项 |
| 加密狗插在与 VirtualBox 同一台物理机器上 | 原生直通。无需额外软件或互联网连接。 |
| 加密狗在另一台电脑、另一个办公室,或在服务器机架中 | 通过局域网或互联网使用 Donglify。两端都需要互联网访问用于账号认证。 |
| 你使用 VirtualBox 7.x | 原生 USB 2.0 和 3.0 直通无需扩展包即可工作。 |
| 多台虚拟机需要同时使用同一个加密狗 | Donglify,但仅适用于支持多连接的加密狗,并且软件许可证允许并发使用的情况下。 |
设置原生 USB 直通
原生直通需要两样东西:在 VM 上启用 USB 控制器,以及用于捕获加密狗的 USB 过滤器。
在 VirtualBox 7.0 及更高版本中,USB 2.0 和 USB 3.0 控制器支持已包含在基础安装包中—无需扩展包。对于 6.x 及更早版本,请安装与你的 VirtualBox 精确版本匹配的扩展包。注意:某些扩展包元数据(VBoxManage list extpacks)仍将“USB 2.0 和 USB 3.0 主控制器”列为 7.x 构建中的一项功能—这只是遗留的描述字符串,并非真实需求。在 7.x 中,扩展包仅用于 VRDP、摄像头直通、磁盘加密和 PXE 启动 ROM。
启用 USB 控制器
- 关闭 VM 电源。
- 打开 VM 设置 > USB,启用 USB 控制器。
- 为现代来宾选择 USB 3.0(xHCI)如果来宾较旧或加密狗在 xHCI 下不稳定,则选择 USB 2.0(EHCI)
- 保存。
创建 USB 过滤器
- 将加密狗连接到宿主机。
- 打开 VM 设置 > USB,点击“添加 USB 过滤器”并选择该加密狗。
- 除非你需要区分相同的加密狗,否则只保留名称、供应商 ID 和产品 ID。
- 拔下加密狗,启动 VM,等待来宾完成启动,然后再把加密狗插回去。VirtualBox 会捕获它并将其传递给来宾。
查找供应商/产品 ID: Windows — 设备管理器 > 属性 > 详细信息 > 硬件 ID(VID_xxxx/PID_xxxx)macOS — 苹果菜单 > 关于本机 > 系统报告 > USB(在 Apple silicon 上请批准配件提示)Linux — lsusb;另外将你的用户加入 vboxusers 组,并在测试前注销/重新登录。
为什么 Dongle 仍然无法连接
| 症状 | 原因 | 修复方法 |
| 已设置过滤器,但加密狗仍未被捕获;出现类似 UUID is busy with a previous request or E_INVALIDARG (0x80070057) 的错误 | 宿主机操作系统、许可证管理器或其他应用已占用该加密狗 | 在宿主机上运行 VBoxManage list usbhost。如果显示 Busy/Unavailable,关闭占用它的软件—弹出存储设备,或关闭用于 HID/智能卡/厂商专用加密狗的供应商许可服务。拔下设备,启动虚拟机,仅在启动完成后再重新连接。 |
| 宿主机检测到加密狗,但 VirtualBox 看不到它(Linux) | 用户不在 vboxusers 组中 | 将用户加入 vboxusers,然后注销/重新登录或重启。 |
| VirtualBox 本身无法启动,或 USB 静默失败(macOS) | 系统安全阻止了 VirtualBox 的驱动/组件 | 在 6.x 上,若支持 kext 未获批准,会出现 Kernel driver not installed (rc=-1908) 错误,导致虚拟机根本无法启动—这是整个虚拟机层面的问题,并非 USB 特有,但如果来宾无法引导,应先排除它。在 7.x 上,macOS 不再使用内核扩展,因此此错误不再适用;被阻止的组件会以不同方式失败,通常发生在安装或首次启动时。干净重装,在 System Settings > Privacy & Security 下批准提示,然后用一个简单的 USB 设备重新测试。 |
| USB 2.0/3.0 设备完全无法被捕获(仅 6.x) | Extension Pack 缺失或版本不匹配 | File > Preferences > Extensions —确认 Extension Pack 版本与 VirtualBox 版本完全一致。7.x 不适用,因为基础 USB 支持不需要 Extension Pack。 |
mstsc.exe)都不支持。要在普通网络中共享许可加密狗,Donglify 是更通用的选择。 使用 Donglify 将加密狗共享到远程虚拟机
Donglify 通过 TCP/IP 传输加密狗,因此绕过了原生直通的同机限制。即使物理加密狗插在另一台主机上,来宾系统也会将密钥视为本地连接的设备。
Donglify 需要在两端安装:插着加密狗的机器以及每个连接到它的 VirtualBox 来宾系统。七天试用涵盖全部功能集,足以在你做出购买决定前确认你的加密狗型号能够通过网络正常工作。
如何将 USB 加密狗重定向到 VirtualBox
- 创建一个 Donglify 账号。
2. 在物理连接了加密狗(服务器)的主机上以及每个连接到它的 VirtualBox 来宾(客户端)上安装 Donglify。
3. 在服务器上,启动 Donglify 并登录。
4. 单击 + 以打开已连接的 USB 密钥列表,选择您的加密狗旁边的单选按钮,然后单击共享。
5. 在客户端上,启动 Donglify,登录同一账户,在列表中找到共享的加密狗,然后点击“连接”
6. 来宾系统中的设备管理器将加密狗显示为本地设备,并且已授权的应用程序从 VirtualBox VM 中读取 USB 令牌。
相同的工作流程也适用于其他虚拟机管理程序。对于 VMware,请按照在 VMware 虚拟机中使用 USB 加密狗中的步骤进行操作。对于微软的虚拟机管理程序,请参阅在 Hyper-V 虚拟机中访问 USB 加密狗。
Donglify 优势
原生 VirtualBox USB 直通仅限于物理连接到 VirtualBox 主机的 USB 设备。Donglify 通过使 USB 安全加密狗可通过网络提供给虚拟机来消除这一限制,即使加密狗连接在另一台计算机上也可以。
访问远程 USB 加密狗
加密狗始终插在其原始计算机上,同时在 VirtualBox 来宾系统中显示为本地连接的 USB 设备。这使你无需实际移动硬件,即可使用位于另一个办公室、服务器机房或同事工作站中的许可证密钥。
跨平台兼容性
Donglify 支持在 Windows 和 macOS 系统之间共享兼容的 USB 安全加密狗。对于 Mac 部署,请在共享加密狗的计算机和连接到它的机器上都安装当前版本的 Donglify。
专为许可证加密狗打造
与通用的 USB-over-network 工具不同,Donglify 专为 USB 安全加密狗而设计。设备兼容性侧重于商业软件使用的硬件许可证密钥,而不是全部范围的 USB 外设。
互联网要求
共享加密狗的计算机和 VirtualBox 来宾系统都需要互联网访问权限,以便使用您的 Donglify 账户进行身份验证,即使两个系统都连接到同一个本地网络。
常见问题
在大多数情况下,主机操作系统会在过滤器捕获它之前先抓取加密狗。运行 VBoxManage list usbhost并查找 Busy 或 Unavailable 状态,确认你在重新插入加密狗之前虚拟机已完成启动,并且在 Apple silicon Mac 上确认在“隐私与安全性”配件”下已允许 VirtualBox。将过滤器缩减为 Vendor ID 和 Product ID 本身就能消除大多数检测失败。
不需要。从 VirtualBox 7.0 及更高版本的基础安装开始,标准 USB 2.0 和 USB 3.0 直通即可工作,因为它自带 EHCI 和 xHCI 支持。扩展包仍然涵盖磁盘加密、主机网络摄像头直通、PXE 启动 ROM 和 VRDP 远程显示。任何使用低于 7.0 版本的人都需要它,才能获得超出 USB 1.1 的任何 USB 支持。
是的,可以通过像 Donglify 这样的网络重定向工具。原生直通只能连接到同一台物理机器上的设备。Donglify 需要安装在持有加密狗的电脑上以及来宾操作系统中,而不是只安装在 VirtualBox 主机上,因为对于 USB 来说,主机和来宾算作两个独立的操作系统。一旦连接建立,来宾看到加密狗的方式就和它看到本地捕获的设备一样。
不能通过原生 VirtualBox 直通来实现。它会将已捕获的设备锁定给单个来宾或主机,而不会同时分配给多个。Donglify 在其设备兼容性文档中列出的、明确支持多连接的加密狗型号上,支持同时多 VM 访问。不在支持列表中的加密狗仍然是单连接的,无论由哪种工具来管理共享。