ترابرد — sing-box
گزینههای ترابرد sing-box در بلوک transport تعبیهشده روی هر ورودی و خروجی توانمند به TLS قرار دارند. این بلوک چندریختی است: فیلد type یکی از پنج نوع ترابرد را انتخاب میکند، و زیرمجموعهٔ متناظر از فیلدها اعمال میشود.
"transport": { "type": "<ws|http|grpc|quic|httpupgrade>", ...variant fields }type: "ws"
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
path | string | / | /<path> | مسیر WebSocket. |
headers | badoption.HTTPHeader | {} | {<header>: <value or list>} | هدرهای درخواست ارتقاء اضافی. |
max_early_data | uint32 | 0 | <bytes> | حداکثر بایتهای دادههای اولیهٔ 0-RTT بافرشده پیش از تکمیل دستدهی WS. مقدار ۰ غیرفعال میکند. |
early_data_header_name | string | Sec-WebSocket-Protocol | <header name> | هدر HTTP حامل دادههای اولیهٔ کدشده با base64 وقتی سرور آن را زیر نامی غیراستاندارد انتظار دارد. |
منبع: option/v2ray_transport.go:79-84 · ثابتشده در v1.13.11 (553cfa1)
type: "http" (HTTP/2)
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
host | badoption.Listable[string] | [] | [<hostname>] | فهرست مقادیر هدر Host. سرور از فهرست برای تطبیق SNI استفاده میکند؛ کلاینت در هر درخواست یکی را بهطور تصادفی انتخاب میکند. |
path | string | / | /<path> | مسیر HTTP. |
method | string | PUT | <HTTP method> | روش HTTP. ترابرد استاندارد از PUT استفاده میکند تا کشها را دلسرد کند. |
headers | badoption.HTTPHeader | {} | {<header>: <value or list>} | هدرهای درخواست اضافی. |
idle_timeout | badoption.Duration | 0 | <duration> | مهلت بیکاری — بستن اتصال HTTP زیرین پس از این میزان سکوت. مقدار ۰ غیرفعال میکند. |
ping_timeout | badoption.Duration | 0 | <duration> | مهلت پاسخ کاوشگر PING HTTP/2. مقدار ۰ PINGها را غیرفعال میکند. |
منبع: option/v2ray_transport.go:70-77 · ثابتشده در v1.13.11 (553cfa1)
ترابرد HTTP بهطور پیشفرض روی HTTP/2 اجرا میشود. با tls.alpn: ["h3"] روی بلوک TLS پیرامون، ترابرد بهجای آن از HTTP/3 استفاده میکند.
type: "grpc"
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
service_name | string | (required) | <service path> | نام سرویس gRPC. |
idle_timeout | badoption.Duration | 0 | <duration> | مهلت بیکاری. مقدار ۰ غیرفعال میکند. |
ping_timeout | badoption.Duration | 0 | <duration> | مهلت پینگ keepalive. مقدار ۰ PINGها را غیرفعال میکند. |
permit_without_stream | bool | false | true | false | اجازهٔ PINGها بدون جریان فعال. |
منبع: option/v2ray_transport.go:88-94 · ثابتشده در v1.13.11 (553cfa1)
type: "quic"
ساختار ترابرد QUIC هیچ فیلد رو به کاربر ندارد — فقط { "type": "quic" } است. تمام تنظیم QUIC در لایهٔ پروتکل اتفاق میافتد (Hysteria2 / TUIC پشتههای QUIC بومی خود را دارند).
type: "httpupgrade"
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
host | string | (server address) | <hostname> | هدر HTTP Host. |
path | string | / | /<path> | مسیر HTTP. |
headers | badoption.HTTPHeader | {} | {<header>: <value or list>} | هدرهای درخواست اضافی. |
منبع: option/v2ray_transport.go:96-100 · ثابتشده در v1.13.11 (553cfa1)
مثالها
WebSocket + TLS:
{
"outbounds": [{
"type": "vless",
"server": "example.com",
"server_port": 443,
"uuid": "...",
"tls": {
"enabled": true,
"server_name": "example.com"
},
"transport": {
"type": "ws",
"path": "/vl",
"headers": { "Host": "example.com" }
}
}]
}gRPC + REALITY:
{
"outbounds": [{
"type": "vless",
"server": "example.com",
"server_port": 443,
"uuid": "...",
"tls": {
"enabled": true,
"server_name": "www.cloudflare.com",
"utls": { "enabled": true, "fingerprint": "chrome" },
"reality": { "enabled": true, "public_key": "...", "short_id": "..." }
},
"transport": {
"type": "grpc",
"service_name": "GunService",
"idle_timeout": "60s",
"ping_timeout": "20s",
"permit_without_stream": true
}
}]
}HTTP/3 (ترابرد HTTP روی h3):
{
"outbounds": [{
"type": "vless",
"server": "example.com",
"server_port": 443,
"uuid": "...",
"tls": {
"enabled": true,
"server_name": "example.com",
"alpn": ["h3"]
},
"transport": {
"type": "http",
"host": ["example.com"],
"path": "/h3",
"method": "PUT"
}
}]
}نکات
- sing-box ترابرد جداگانهٔ SplitHTTP / XHTTP عرضه نمیکند. نزدیکترین معادل،
type: "http"روی HTTP/3 است (با تنظیمtls.alpn: ["h3"]) که بیشتر همان ویژگیهای ضد-DPI را ارائه میدهد. idle_timeout: 0وping_timeout: 0با هم پینگهای keepalive را بهطور کامل غیرفعال میکنند. برای اتصالات طولانیمدت پشت NAT،idle_timeoutرا روی چیزی مانند"30s"تنظیم کنید تا اتصال TCP زیرین فعالیت دورهای ببیند.- فیلد
hostدرtype: "http"یک فهرست است. سرور از آن برای تطبیق SNI استفاده میکند (هر مقدار تطبیق مییابد)؛ کلاینت در هر درخواست یکی را بهطور تصادفی انتخاب میکند، که وقتی متعادلکنندهٔ بار بالادست بر اساس هدر Host مسیریابی میکند مفید است. early_data_header_nameدر WebSocket بهطور پیشفرض رویSec-WebSocket-Protocolاست — همان هدری که V2Ray استفاده میکند. فقط زمانی بازنویسی کنید که پراکسی بالادست آن هدر را حذف میکند.
نکات بینهستهای
- Xray-core از
streamSettings.network+ یک بلوک per-transport*Settingsاستفاده میکند، با انواع TCP، mKCP و SplitHTTP/XHTTP که sing-box ندارد. بنگرید به ترابرد — Xray-core. - mihomo تنظیمات ترابرد را در میان بلوکهای per-protocol
*-optsدر هر ورودی پراکسی توزیع میکند. بنگرید به ترابرد — mihomo.
منبع: option/v2ray_transport.go:11-100 · v1.13.11 (553cfa1)
