跳转至

MASQUE 服务器

自 sing-box 1.15.0 起

masque-server endpoint 是一个基于 HTTP 的 IP 代理(RFC 9484,CONNECT-IP)服务器。

结构

{
  "type": "masque-server",
  "tag": "masque-server",

  ... // 监听字段

  "version": [],
  "users": [
    {
      "username": "",
      "password": ""
    }
  ],
  "tls": {},
  "path": "",
  "address": [],
  "advertise_routes": [],
  "system": false,
  "name": "",
  "mtu": 1280,

  ... // HTTP2 字段 / QUIC 字段
  ... // UDP NAT 字段
}

当内容只有一项时,可以忽略 JSON 数组 [] 标签

监听字段

参阅 监听字段udp_timeout 属于下方的 UDP NAT 字段

字段

version

提供的 HTTP 版本列表。

可用值:123

默认提供全部版本。

3 需要 TLS。

users

HTTP 用户,通过 Authorization 标头验证。

如果为空则不需要验证。

tls

TLS 配置,参阅 TLS

IP 代理必须运行在 TLS 或 QUIC 之上。仅当服务器位于终止 TLS 的 HTTP 中间层之后时才可以不启用。

path

IP 代理资源的 URI 模板路径,可以包含 targetipproto 变量。

默认使用 /.well-known/masque/ip/{target}/{ipproto}/

address

必填

隧道网络的 IP 前缀列表,每个 IP 版本最多一个。

前缀中的地址由服务器自己使用,前缀内的其他地址分配给客户端。

除隧道网络外,向客户端声明的 IP 前缀列表。

客户端发往其他目的地址的流量会被拒绝。

默认声明全部地址。

system

使用系统接口。

需要特权且不能与已有系统接口冲突。

endpoint 会配置接口地址和 MTU,但不会安装操作系统路由或 DNS 设置。

如果禁用,sing-box 将使用内部网络栈。

name

系统接口的自定义接口名称。

默认使用自动生成的 masque 接口名称。

mtu

隧道 MTU。

默认使用 1280

HTTP2 字段

version 包含 2 时。

参阅 HTTP2 字段

QUIC 字段

version 包含 3(默认)时,HTTP2 字段 替换为 QUIC 字段。

参阅 QUIC 字段

initial_packet_size 默认为 mtu + 51,使不超过隧道 MTU 的 IP 数据包能放入一个 QUIC 数据报。QUIC 数据包最大为 1452 字节,mtu 更大时,放不下的 IP 数据包会收到 ICMP Packet Too Big 回复。

UDP NAT 字段

参阅 UDP NAT 字段