Naive — sing-box
Naive یک پراکسی TCP/HTTP-mux است که برای شبیه شدن به ترافیک معمولی HTTPS یا HTTP/3 طراحی شده. sing-box هر دو سمت را پیادهسازی میکند و ضامنهای مستقیمی برای کنترلکنندهٔ ازدحام و پنجرههای کنترل جریان پشتهٔ QUIC quiche همراه ارائه میدهد.
ورودی
type: "naive":
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
users | []auth.User | [] | [{username, password}] | کاربران پذیرفتهشده. |
network | NetworkList | (tcp+udp) | tcp | udp | | محدود کردن به فقط TCP یا فقط UDP. |
quic_congestion_control | string | (QUIC default) | | TBBR | B2ON | QBIC | RENO | الگوریتم کنترل ازدحام QUIC که به پشتهٔ quiche منتقل میشود. چهار کد ۴-حرفی پذیرفته میشوند: TBBR (BBRv1)، B2ON (BBRv2)، QBIC (CUBIC)، RENO. |
منبع: option/naive.go:19-25 · ثابتشده در v1.13.11 (553cfa1)
این ساختار ListenOptions و InboundTLSOptionsContainer را درون خود جای میدهد. یک پیکربندی TLS الزامی است — Naive همیشه روی سیم TLS-wrapped است.
خروجی
type: "naive":
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
username | string | (unset) | <string> | نامکاربری احراز هویت پراکسی بالادست. |
password | string | (unset) | <string> | گذرواژهٔ احراز هویت پراکسی بالادست. |
insecure_concurrency | int | 0 | <int> | تعداد جریانهای HTTP/2 همزمان مجاز در هر اتصال. مقدار ۰ از پیشفرض پشته استفاده میکند. |
extra_headers | badoption.HTTPHeader | {} | {<header>: <value or list>} | هدرهای اضافی که به هر درخواست افزوده میشوند. |
stream_receive_window | *byteformats.MemoryBytes | (stack default) | <bytes / MiB / GiB> | پنجرهٔ کنترل جریان هر جریان. رشتههای پسونددار مانند "4MiB" پذیرفته میشوند. |
udp_over_tcp | *UDPOverTCPOptions | (disabled) | UDPOverTCPOptions | بستههای UDP را داخل جریان Naive به سبک TCP بستهبندی میکند وقتی بالادست از دیتاگرام QUIC پشتیبانی نمیکند. |
quic | bool | false | true | false | استفاده از HTTP/3 (QUIC) بهجای HTTP/2 بهعنوان ترابرد. سرور باید از هر دو پشتیبانی کند تا کلاینتها بهدرستی fallback کنند. |
quic_congestion_control | string | (QUIC default) | | TBBR | B2ON | QBIC | RENO | کنترلکنندهٔ ازدحام QUIC برای سمت کلاینت. |
quic_session_receive_window | *byteformats.MemoryBytes | (stack default) | <bytes / MiB / GiB> | پنجرهٔ کنترل جریان QUIC برای هر نشست (نه هر جریان). |
منبع: option/naive.go:27-40 · ثابتشده در v1.13.11 (553cfa1)
DialerOptions، ServerOptions و OutboundTLSOptionsContainer را درون خود جای میدهد.
مثالها
ورودی (HTTP/2 روی TLS):
json
{
"inbounds": [
{
"type": "naive",
"tag": "naive-in",
"listen": "::",
"listen_port": 443,
"users": [{ "username": "alice", "password": "<password>" }],
"tls": {
"enabled": true,
"alpn": ["h2", "http/1.1"],
"certificate_path": "/etc/ssl/cert.pem",
"key_path": "/etc/ssl/key.pem"
}
}
]
}خروجی با سوئیچ به HTTP/3 با کنترل ازدحام BBRv2:
json
{
"outbounds": [
{
"type": "naive",
"tag": "naive-out",
"server": "example.com",
"server_port": 443,
"username": "alice",
"password": "<password>",
"quic": true,
"quic_congestion_control": "B2ON",
"quic_session_receive_window": "16MiB",
"tls": {
"enabled": true,
"server_name": "example.com",
"alpn": ["h3", "h2", "http/1.1"]
}
}
]
}نکات
- چهار کد کنترل ازدحام برچسبهای ۴-حرفی حساس به حروف هستند که توسط پشتهٔ quiche استفاده میشوند:
TBBR— BBR v1B2ON— BBR v2QBIC— CUBICRENO— New Reno
stream_receive_windowوquic_session_receive_windowبایتهای مقداری پسونددار را از طریق parser byteformats.MemoryBytesمیپذیرند —"4MiB"،"16MiB"،"1GiB". اعداد صحیح ساده بهعنوان بایت خام تلقی میشوند.insecure_concurrencyپرچم تجربی چندجریانی کلاینت اصلی Naive است. تنظیم آن بالای حدوداً ۸ معمولاً سرعت بیشتری نمیدهد اما حافظهٔ بیشتری در هر اتصال مصرف میکند.- شکل
udp_over_tcpهمانند نسخهٔ Shadowsocks / TUIC است —{enabled, version}.
نکات بینهستهای
- Xray-core Naive را پیادهسازی نمیکند. به Naive — Xray-core مراجعه کنید.
- mihomo Naive را پیادهسازی نمیکند. به Naive — mihomo مراجعه کنید.
منبع: option/naive.go:19-40 · v1.13.11 (553cfa1)
