9.2.2. 在 USB 设备重定向上设置限制
要从重定向过滤某些设备,请将过滤器属性传递给
-device usb-redir
。filter 属性采用由过滤规则组成的字符串,规则的格式是:
<class>:<vendor>:<product>:<version>:<allow>
使用
-1
值指定它接受特定字段的任何值。您可以将 | 用作分隔符,在同一命令行中使用多个规则。
重要
如果设备与任何规则过滤器都不匹配,则不会重定向它!
例 9.1. 使用 windows 客户机虚拟机限制重定向的示例
- 准备 Windows 7 客户机虚拟机。
- 将以下代码摘录添加到 guest 虚拟机的 domain 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 连接到客户端虚拟机。
- 在菜单中,单击,这将生成以下消息:"Some USB 设备受主机策略阻止"。 并继续。过滤器生效。
- 为确保过滤器正确捕获了 USB 设备供应商和产品,然后在 guest 虚拟机的域 XML 中进行以下更改以允许 USB 重定向。
<redirfilter> <usbdev class='0x08' vendor='0x0951' product='0x1625' version='2.0' allow='yes'/> <usbdev allow='no'/> </redirfilter>
- 重新启动 guest 虚拟机,然后使用 virt-viewer 连接到 guest 虚拟机。USB 设备现在会将流量重定向到客户端虚拟机。