16.3.2. 在 USB 设备重定向中设置限制
要从重定向过滤出某些设备,请将 filter 属性传递给
-device usb-redir
。filter 属性使用一个由过滤规则组成的字符串,规则的格式是:
<class>:<vendor>:<product>:<version>:<allow>
使用
-1
值指定它接受特定字段的任何值。您可以使用 | 作为分隔符,在同一命令行中使用多个规则。请注意,如果设备不匹配通过规则,则不允许重定向该设备!
例 16.1. 使用客户机虚拟机限制重定向的示例
- 准备客户机虚拟机。
- 在客户机虚拟机的域 XML 文件中添加以下代码摘录:
<redirdev bus='usb' type='spicevmc'> <alias name='redir0'/> <address type='usb' bus='0' port='3'/> </redirdev> <redirfilter> <usbdev class='0x08' vendor='0x1234' product='0xBEEF' version='2.0' allow='yes'/> <usbdev class='-1' vendor='-1' product='-1' version='-1' allow='no'/> </redirfilter>
- 启动客户机虚拟机并通过运行以下命令确认设置更改:
#ps -ef | grep $guest_name
-device usb-redir,chardev=charredir0,id=redir0,/ filter=0x08:0x1234:0xBEEF:0x0200:1|-1:-1:-1:-1:0,bus=usb.0,port=3
- 将 USB 设备插入到主机物理计算机中,并使用 virt-manager 连接到客户机虚拟机。
- 在菜单中点击,这将生成以下信息:"主机策略会阻止某些 USB 设备"。 并继续。过滤器生效。
- 为确保过滤器捕获正确检查 USB 设备供应商和产品,然后在主机物理计算机的域 XML 中进行以下更改以允许 USB 重定向。
<redirfilter> <usbdev class='0x08' vendor='0x0951' product='0x1625' version='2.0' allow='yes'/> <usbdev allow='no'/> </redirfilter>
- 重新启动 guest 虚拟机,然后使用 virt-viewer 连接到客户机虚拟机。USB 设备现在会将流量重定向到客户机虚拟机。