麒麟系统USB重定向需通过usbip或SPICE协议实现,适用于云桌面等专业场景;usbip需加载模块、导出设备并开放3240端口,SPICE则通过客户端开关或命令行绑定,均须配置防火墙放行对应端口。

在麒麟系统中将本地USB端口重定向到网络,本质是让远端主机能像直连一样访问本机的USB设备,需绕过QEMU依赖、直接基于SPICE协议或USB/IP协议构建通信通道。该操作不适用于普通U盘文件共享,而是面向云桌面、远程开发、加密Key调用等专业场景。
使用usbip工具实现标准Linux级USB重定向
usbip是内核原生支持的跨网络USB共享方案,麒麟V10已预装usbip-utils包,无需额外编译。此方法要求远端主机也运行Linux并安装usbip客户端。
第一步:确认本机USB设备已识别,执行 lsusb 查看目标设备(例如 Bus 002 Device 005: ID 0a89:000f Holtek Semiconductor)。
第二步:加载usbip内核模块并启动服务:
sudo modprobe usbip_core && sudo modprobe usbip_host
sudo systemctl start usbipd && sudo systemctl enable usbipd
第三步:导出指定设备(以总线号/设备号 2-5 为例):
sudo usbip bind -b 2-5
sudo usbip list -l 验证显示 “Exportable” 状态为 yes
第四步:允许远程连接(默认仅监听localhost):
编辑 /etc/default/usbip,将 USBIP_ARGS="" 改为 USBIP_ARGS="--tcp-port=3240 --allow=0.0.0.0",然后重启服务:
【必须重启usbipd服务,否则远端无法建立TCP连接】
sudo systemctl restart usbipd
第五步:在远端主机执行 usbip attach -r [麒麟IP] -b 2-5 即可挂载设备节点。
通过SPICE协议启用无QEMU依赖的USB重定向
银河麒麟已集成自研SPICE增强模块,专为云桌面设计,无需QEMU后端即可完成USB设备绑定与通道透传。该路径适用于麒麟云桌面客户端连接至VNC/SPICE服务端的场景。
方法一:启用客户端USB重定向开关
打开麒麟云桌面客户端 → 右上角“设置”图标 → 进入“设备重定向” → 开启“USB设备重定向” → 勾选“自动连接已插入设备”。
方法二:手动触发设备绑定(当自动模式失效时)
设备插入后,在客户端界面底部状态栏找到USB图标 → 右键点击目标设备 → 选择“重定向至远程会话”。
【注意:若此处无设备列表,请先确认libusbip库已加载——执行 lsmod | grep usbip,缺失则需 sudo modprobe libusbip】
方法三:命令行强制绑定(调试专用)
sudo /usr/bin/spice-client-usb-redir --bind --vendor-id=0x0a89 --product-id=0x000f
配置防火墙放行USB重定向必需端口
USB重定向依赖特定端口通信,未放行将导致连接超时或设备无法枚举。
对于usbip:开放TCP 3240端口(默认)
sudo firewall-cmd --permanent --add-port=3240/tcp && sudo firewall-cmd --reload
对于SPICE USB通道:需放行SPICE主端口(通常5900+显示编号)及usbredir子通道(默认为同一端口复用,但需确保firewalld未拦截DCCP协议)
sudo firewall-cmd --permanent --add-service=spice && sudo firewall-cmd --reload
验证是否生效:在远端执行 nc -zv [麒麟IP] 3240,返回 “succeeded” 表示端口可达。

















