了解如何在 Linux 上以 USB 服务器模式安装和使用 USB Redirector for Linux,共享本地 USB 设备供远程电脑访问。
要在电脑上以 USB 服务器模式安装 USB Redirector for Linux,请先下载并解压安装包,然后执行以下命令:
如果安装过程中遇到任何问题,请参阅 安装故障排除指南。
安装完成后,usbsrvd 守护进程将在系统中运行。使用 usbsrv 命令行工具来共享或取消共享 USB 设备。所有后续操作都通过该工具执行。
usbsrv 工具的通用命令行语法为:
其中 <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 Redirector 中的所有 USB 设备都会分配唯一的 ID 编号,这些 ID 可方便地用于共享/取消共享设备、管理设置等。ID 编号显示在设备名称的左侧。
每个 USB 设备都会显示状态信息,可能的状态值如下:
在 USB 设备可以被重定向之前,必须先将其共享。共享操作使设备对远程客户端可用。
例如,我们将共享上面 -list-devices 命令列出的 "Flash Disk - USB Mass Storage Device"。可以使用 -share 命令完成:
如果成功,该命令将显示类似以下的消息:
请注意!如果您将此设备插入另一个 USB 端口,端口号将发生变化,USB Redirector 会将其视为另一个设备。对于带有序列号的设备则不受此限制,此类设备在任何 USB 端口都能被正确识别。
也可以使用简短形式的 -share 命令,通过 ID 共享设备:
USB 设备被共享后,即使重启也会保持共享状态。共享的设备在本地系统上不可访问,因为它们已被 USB Redirector 接管以便提供给远程客户端使用。要取消共享设备,请使用 -unshare 命令。
要取消共享上述截图中列出的 "USB Human Interface Device - Mouse",需要运行:
也可以通过 ID 取消共享同一设备:
默认情况下,USB Redirector 在 32032 TCP 端口上接受来自客户端的连接。要更改端口号,请运行: