MASQUE 客户端
自 sing-box 1.15.0 起
masque-client endpoint 是一个基于 HTTP 的 IP 代理(RFC 9484,CONNECT-IP)客户端。
结构
{
"type": "masque-client",
"tag": "masque-client",
"server": "127.0.0.1",
"server_port": 443,
"username": "",
"password": "",
"path": "",
"headers": {},
"version": 0,
"disable_version_fallback": false,
"tls": {},
"advertise_routes": [],
"system": false,
"name": "",
"mtu": 1280,
"on_demand": false,
... // HTTP2 字段 / QUIC 字段
... // UDP NAT 字段
... // 拨号字段
}
当内容只有一项时,可以忽略 JSON 数组 [] 标签
字段
server
必填
服务器地址。
server_port
必填
服务器端口。
username
Basic 认证用户名。
password
Basic 认证密码。
path
IP 代理资源的 URI 模板路径,可以包含 target 和 ipproto 变量。
默认使用 /.well-known/masque/ip/{target}/{ipproto}/。
headers
HTTP 请求的额外标头。
version
HTTP 版本。
可用值:1、2、3。
默认使用 3。
当为 1 或 2 时,IP 数据包通过 TCP 流传输,而不是 QUIC 数据报。
disable_version_fallback
禁用自动回退到更低的 HTTP 版本。
tls
TLS 配置,参阅 TLS。
HTTP/3 需要 TLS。
advertise_routes
向服务器声明的 IP 前缀列表。
服务器会把发往这些前缀的流量路由到此 endpoint,并在此作为入站流量处理。
system
使用系统接口。
需要特权且不能与已有系统接口冲突。
endpoint 会配置接口地址和 MTU,但不会安装操作系统路由或 DNS 设置。
如果禁用,sing-box 将使用内部网络栈。
name
系统接口的自定义接口名称。
默认使用自动生成的 masque 接口名称。
mtu
隧道 MTU。
默认使用 1280。
on_demand
允许该 endpoint 在需要时断开连接。
HTTP2 字段
当 version 为 2 时。
参阅 HTTP2 字段。
keep_alive_period 默认为 10s。
QUIC 字段
当 version 为 3(默认)时。
参阅 QUIC 字段。
keep_alive_period 默认为 10s。
initial_packet_size 默认为 mtu + 51,使不超过隧道 MTU 的 IP 数据包能放入一个 QUIC 数据报。QUIC 数据包最大为 1452 字节,mtu 更大时,放不下的 IP 数据包会收到 ICMP Packet Too Big 回复。如果路径无法传输这个大小的数据包,QUIC 握手会失败,客户端将回退到更低的 HTTP 版本。
UDP NAT 字段
参阅 UDP NAT 字段。
拨号字段
参阅 拨号字段。