Skip to content

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": []
}

Difference from the official USB/IP protocol

sing-box uses 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.

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.