Noisy-Shuttle
结构
注意: 这是 sing-box 原生协议变体。它与 Rust noisy-shuttle 实现不兼容。
{
"type": "noisy-shuttle",
"tag": "ns-out",
"server": "server.example",
"server_port": 443,
"password": "secret",
"network": "tcp",
"tls": {},
"session": {
"enabled": true,
"max_streams": 16,
"max_requests": 0,
"idle_timeout": "5m",
"max_age": "0s",
"keepalive_interval": "30s",
"keepalive_timeout": "60s"
},
"handshake": {
"padding_min": 0,
"padding_max": 24,
"auth_timeout": "5s"
},
"udp_timeout": "60s",
"udp_max_packet_size": 1500,
... // 拨号字段
}
字段
server
必填
服务器地址。
server_port
必填
服务器端口。
password
必填
Noisy-Shuttle 密码。
network
启用的网络。
可选 tcp udp。
默认同时启用两者。
tls
TLS 配置,参阅 TLS。
session
会话复用选项。
session.enabled
启用会话复用。默认值为 false(禁用),必须显式启用。
session.max_streams
每个会话的最大并发流数。默认值为 16。
session.max_requests
每个流的最大并发请求数。0 表示无限制。默认值为 0。
session.idle_timeout
流的空闲超时时间。默认值为 5m。
session.max_age
会话的最大有效期。0 表示无过期时间。默认值为 0s。
session.keepalive_interval
发送 keepalive 数据包的间隔。默认值为 30s。
session.keepalive_timeout
keepalive 响应超时时间。默认值为 2x keepalive_interval(60s)。
handshake
出站连接握手选项。
handshake.padding_min
出站握手的最小填充长度。默认值为 0。
handshake.padding_max
出站握手的最大填充长度。默认值为 24。
handshake.auth_timeout
握手认证超时时间。默认值为 5s。
udp_timeout
UDP 会话超时时间。默认值为 60s。
udp_max_packet_size
UDP 数据包最大大小。默认值为 1500。
拨号字段
参阅 拨号字段。
最小示例
{
"type": "noisy-shuttle",
"tag": "ns-out",
"server": "server.example",
"server_port": 443,
"password": "secret",
"network": "tcp",
"tls": {
"enabled": true,
"server_name": "server.example"
}
}
高级示例(包含会话复用、keepalive 和 UDP)
{
"type": "noisy-shuttle",
"tag": "ns-out",
"server": "server.example",
"server_port": 443,
"password": "secret",
"network": "tcp,udp",
"tls": {
"enabled": true,
"server_name": "server.example"
},
"session": {
"enabled": true,
"max_streams": 16,
"max_requests": 0,
"idle_timeout": "5m",
"max_age": "0s",
"keepalive_interval": "30s",
"keepalive_timeout": "60s"
},
"handshake": {
"padding_min": 0,
"padding_max": 24,
"auth_timeout": "5s"
},
"udp_timeout": "60s",
"udp_max_packet_size": 1500
}