USB Server Mode

USB 服务器模式使用指南

了解如何在 Linux 上以 USB 服务器模式安装和使用 USB Redirector for Linux,共享本地 USB 设备供远程电脑访问。

安装 USB 服务器模式

要在电脑上以 USB 服务器模式安装 USB Redirector for Linux,请先下载并解压安装包,然后执行以下命令:

$ ./installer.sh install-server

如果安装过程中遇到任何问题,请参阅 安装故障排除指南

安装完成后,usbsrvd 守护进程将在系统中运行。使用 usbsrv 命令行工具来共享或取消共享 USB 设备。所有后续操作都通过该工具执行。

命令行语法

usbsrv 工具的通用命令行语法为:

usbsrv <command>

其中 <command> 可以是以下命令之一:

命令说明
-s, -share <device>共享 USB 设备
-t, -unshare <device>取消共享 USB 设备
-auto-share on|off启用或禁用自动共享模式
-add-exclusion <device>将设备添加到排除列表,阻止手动和自动共享
-remove-exclusion <device>将设备从排除列表中移除
-create-callback <addr:port>创建到远程 USB 客户端的回调连接
-close-callback <addr:port>关闭到远程 USB 客户端的回调连接
-remote-auto-connect on|off <client>启用/禁用指定回调客户端上的设备自动连接
-connect-to <client> <device>将指定设备连接到指定客户端
-disconnect-from <device>断开指定设备与客户端的连接
-l, -list-devices显示服务器上所有 USB 设备列表
-list-clients显示当前连接到服务器的客户端列表
-i, -info显示当前 USB 服务器状态
-set-timeout <seconds> <device>设置 USB 设备的空闲超时时间(秒),设为 0 禁用
-set-tcp-port <port>设置服务器使用的 TCP 端口号

参数说明

命令中使用的参数如下:

<deviceid> — 由 -list-devices 命令显示的设备 ID 编号。

<clientid> — 由 -list-clients 命令显示的客户端 ID 编号。

<device> — 以下参数的组合,用于标识 USB 设备:

-deviceid <id>设备 ID 编号
-vid <vendorid>USB 设备供应商 ID
-pid <productid>USB 设备产品 ID
-serial <serial>USB 设备序列号
-usb-port <port>USB 端口号
-device-name "<name>"USB 设备名称(需用双引号括起来)

<client> — 以下参数之一,用于标识已连接到服务器的客户端:

-clientid <id>客户端 ID 编号
-client <addr:port>远程客户端地址和端口号

获取 USB 设备列表

要查看 USB 服务器上的 USB 设备列表,运行以下命令:

$ usbsrv -list-devices

如果成功,该命令将产生类似以下的输出:

user@cyber:~$ usbsrv -list-devices =================== LIST OF LOCAL USB DEVICES =================== 1: Flash Disk - USB Mass Storage Device Vid: 0ea0 Pid: 2168 Port: 1-4 Status: plugged 16: USB-Serial Controller C Prolific Technology Inc. Vid: 067b Pid: 2303 Port: 3-1 Status: plugged, in exclusion list 18: USB Human Interface Device - Mouse Vid: 1241 Pid: 1166 Port: 2-1 Status: in use by 192.168.1.20 19: FM1083 FORTEMEDIA - Composite USB Device Vid: 138c Pid: 0001 Port: 2-2 Status: not plugged, shared ===================== ======================= =================== user@cyber:~$

USB Redirector 中的所有 USB 设备都会分配唯一的 ID 编号,这些 ID 可方便地用于共享/取消共享设备、管理设置等。ID 编号显示在设备名称的左侧。

每个 USB 设备都会显示状态信息,可能的状态值如下:

共享 USB 设备

在 USB 设备可以被重定向之前,必须先将其共享。共享操作使设备对远程客户端可用。

例如,我们将共享上面 -list-devices 命令列出的 "Flash Disk - USB Mass Storage Device"。可以使用 -share 命令完成:

$ usbsrv -share -vid 0ea0 -pid 2168 -usb-port 1-4

如果成功,该命令将显示类似以下的消息:

user@cyber:~$ usbsrv -share -vid 0ea0 -pid 2168 -usb-port 1-4 ====================== OPERATION SUCCESSFUL ===================== USB device has been shared ===================== ======================= =================== user@cyber:~$

请注意!如果您将此设备插入另一个 USB 端口,端口号将发生变化,USB Redirector 会将其视为另一个设备。对于带有序列号的设备则不受此限制,此类设备在任何 USB 端口都能被正确识别。

也可以使用简短形式的 -share 命令,通过 ID 共享设备:

$ usbsrv -share 1
user@cyber:~$ usbsrv -share 1 ====================== OPERATION SUCCESSFUL ===================== USB device has been shared ===================== ======================= =================== user@cyber:~$

USB 设备被共享后,即使重启也会保持共享状态。共享的设备在本地系统上不可访问,因为它们已被 USB Redirector 接管以便提供给远程客户端使用。要取消共享设备,请使用 -unshare 命令。

取消共享 USB 设备

要取消共享上述截图中列出的 "USB Human Interface Device - Mouse",需要运行:

$ usbsrv -unshare -vid 1241 -pid 1166 -usb-port 2-1
user@cyber:~$ usbsrv -unshare -vid 1241 -pid 1166 -usb-port 2-1 ====================== OPERATION SUCCESSFUL ===================== USB device has been unshared ===================== ======================= =================== user@cyber:~$

也可以通过 ID 取消共享同一设备:

$ usbsrv -unshare 18
user@cyber:~$ usbsrv -unshare 18 ====================== OPERATION SUCCESSFUL ===================== USB device has been unshared ===================== ======================= =================== user@cyber:~$

更改 TCP 端口号

默认情况下,USB Redirector 在 32032 TCP 端口上接受来自客户端的连接。要更改端口号,请运行:

$ usbsrv -set-tcp-port <端口号>