74 lines
2.0 KiB
Markdown
74 lines
2.0 KiB
Markdown
---
|
||
icon: material/new-box
|
||
---
|
||
|
||
!!! question "自 sing-box 1.14.0 起"
|
||
|
||
# USB/IP Server
|
||
|
||
USB/IP Server 服务通过 [USB/IP](https://usbip.sourceforge.net/) 导出本地 USB 设备,供 [USB/IP Client](/zh/configuration/service/usbip-client/) 或标准 USB/IP 客户端导入。
|
||
|
||
可用于 Linux、Windows 和 macOS(macOS 需要使用 CGO 构建,且导出设备需要禁用系统完整性保护)。不支持 iOS。
|
||
|
||
### 结构
|
||
|
||
```json
|
||
{
|
||
"type": "usbip-server",
|
||
|
||
... // 监听字段
|
||
|
||
"provider": "",
|
||
"devices": []
|
||
}
|
||
```
|
||
|
||
!!! info "与官方 USB/IP 协议的区别"
|
||
|
||
sing-box 使用 [sing-usbip](https://github.com/SagerNet/sing-usbip),它使用一套附加协议来支持热插拔等增强功能,但仍然可以与标准 USB/IP 互操作。
|
||
|
||
### 监听字段
|
||
|
||
参阅 [监听字段](/zh/configuration/shared/listen/) 了解详情。
|
||
|
||
`listen_port` 默认为 `3240`。
|
||
|
||
### 字段
|
||
|
||
#### provider
|
||
|
||
设备来源提供者。
|
||
|
||
- `default`:导出由 `devices` 匹配的本地设备。默认值。
|
||
- `dynamic`:设备在运行时通过 [sing-box API](/zh/configuration/service/api/) 客户端提供,而非来自配置文件,支持的平台包括 [macOS](/zh/clients/apple/) 和 [Android](/zh/clients/android/) 上的 sing-box 图形客户端,以及配合 [sing-box Dashboard](https://github.com/SagerNet/sing-box-dashboard) 的基于 Chromium 的浏览器。
|
||
|
||
!!! quote ""
|
||
|
||
`default` 提供者仅支持通过 CLI 直接运行在 Linux、Windows 和 macOS 上,并且需要提升的权限。
|
||
|
||
#### devices
|
||
|
||
使用 `default` 提供者时 ==必填==。
|
||
|
||
设备匹配列表,用于选择要导出的本地 USB 设备。
|
||
|
||
对象格式:
|
||
|
||
```json
|
||
{
|
||
"bus_id": "",
|
||
"vendor_id": 0,
|
||
"product_id": 0,
|
||
"serial": ""
|
||
}
|
||
```
|
||
|
||
对象字段:
|
||
|
||
- `bus_id`:USB 总线 ID,例如 `1-2`。
|
||
- `vendor_id`:USB 供应商 ID,为数字。
|
||
- `product_id`:USB 产品 ID,为数字。
|
||
- `serial`:设备序列号。
|
||
|
||
在一个对象内,所有指定的字段都必须匹配;多个对象之间取并集。至少需要一个字段。
|