sing-box/docs/configuration/service/usbip-server.md

2.1 KiB

icon
material/new-box

!!! question "Since sing-box 1.14.0"

USB/IP Server

USB/IP Server service exports local USB devices over USB/IP, to be imported by the USB/IP Client or a standard USB/IP client.

Available on Linux, Windows, and macOS (macOS requires a build with CGO, and exporting devices requires disabling System Integrity Protection). Not available on iOS.

Structure

{
  "type": "usbip-server",

  ... // Listen Fields

  "provider": "",
  "devices": []
}

!!! info "Difference from the official USB/IP protocol"

sing-box uses [sing-usbip](https://github.com/SagerNet/sing-usbip), which uses an additional
set of protocols to support enhancements such as hotplug, while remaining interoperable with
the standard USB/IP protocol.

Listen Fields

See Listen Fields for details.

listen_port defaults to 3240.

Fields

provider

The device source provider.

  • default: Exports the local devices matched by devices. The default value.
  • dynamic: Devices are provided at runtime through a sing-box API client instead of from configuration, on supported platforms: the sing-box graphical clients on macOS and Android, and Chromium-based browsers with sing-box Dashboard.

!!! quote ""

The `default` provider is only supported when running directly via the CLI on Linux, Windows,
and macOS, and requires elevated privileges.

devices

==Required== with the default provider.

List of device matches selecting which local USB devices to export.

Object format:

{
  "bus_id": "",
  "vendor_id": 0,
  "product_id": 0,
  "serial": ""
}

Object fields:

  • bus_id: USB bus ID, e.g. 1-2.
  • vendor_id: USB vendor ID, as a number.
  • product_id: USB product ID, as a number.
  • serial: Device serial number.

Within one object, all specified fields must match; multiple objects are combined as a union. At least one field is required.