TUIC — sing-box
sing-box نسخهٔ TUIC v5 — شکل مدرن UUID+گذرواژه — را پیادهسازی میکند. شکل تاریخی v4 با «token» پشتیبانی نمیشود. TUIC همیشه روی QUIC اجرا میشود، بنابراین بلوک tls تعبیهشده الزامی است.
ورودی
ورودی type: "tuic":
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
users | []TUICUser | [] | [TUICUser] | کاربران پذیرفتهشده. هر یک یک جفت UUID + گذرواژه دارد. |
congestion_control | string | cubic | cubic | new_reno | bbr | الگوریتم کنترل ازدحام QUIC. تنظیم در اینجا فقط جهت خروجی سمت سرور را تغییر میدهد؛ کلاینتها الگوریتم خود را انتخاب میکنند. |
auth_timeout | badoption.Duration | 3s | <duration> | چه مدت برای کلاینت منتظر میماند تا قاب احراز هویت را کامل کند، پیش از بستن اتصال QUIC. |
zero_rtt_handshake | bool | false | true | false | پذیرش دستدهیهای TLS با 0-RTT. اتصال کمی سریعتر میشود به قیمت از دست رفتن مقاومت در برابر حملهٔ بازپخش برای پنجرهٔ اولین بار 0-RTT. |
heartbeat | badoption.Duration | 10s | <duration> | فاصلهٔ بین قابهای QUIC PING که سرور برای زنده نگه داشتن نگاشتهای NAT ارسال میکند. |
منبع: option/tuic.go:5-13 · ثابتشده در v1.13.11 (553cfa1)
این ساختار ListenOptions و InboundTLSOptionsContainer را درون خود جای میدهد. یک پیکربندی TLS الزامی است.
users[]
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
name | string | (unset) | <string> | نام نمایشی استفادهشده در آمار و لاگها. |
uuid | string | (required) | <UUID> | UUID کلاینت. |
password | string | (required) | <string> | گذرواژهٔ کلاینت. |
منبع: option/tuic.go:15-19 · ثابتشده در v1.13.11 (553cfa1)
خروجی
خروجی type: "tuic":
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
uuid | string | (required) | <UUID> | UUID کاربر پذیرفتهشده توسط سرور. |
password | string | (required) | <string> | گذرواژهٔ کاربر. |
congestion_control | string | cubic | cubic | new_reno | bbr | الگوریتم کنترل ازدحام QUIC برای جهت کلاینت-به-سرور. |
udp_relay_mode | string | native | native | quic | نحوهٔ تونل شدن بستههای UDP. `native` از دیتاگرامهای QUIC استفاده میکند؛ `quic` هر بسته UDP را در یک جریان QUIC اختصاصی میپیچد. `native` سریعتر است؛ `quic` از middleboxهایی که دیتاگرامهای QUIC را دور میاندازند عبور میکند. |
udp_over_stream | bool | false | true | false | استفاده از قاببندی UDP-over-stream که برای کلاینتهای TUIC با پشتههای QUIC بدون پشتیبانی از دیتاگرام معرفی شد. مذاکرهشده است؛ هر دو سمت باید آن را فعال کنند. |
zero_rtt_handshake | bool | false | true | false | استفاده از دستدهی TLS با 0-RTT در اتصال مجدد. |
heartbeat | badoption.Duration | 10s | <duration> | فاصلهٔ QUIC PING. |
network | NetworkList | (tcp+udp) | tcp | udp | | محدود کردن به فقط TCP یا فقط UDP. |
منبع: option/tuic.go:21-33 · ثابتشده در v1.13.11 (553cfa1)
DialerOptions، ServerOptions و OutboundTLSOptionsContainer را درون خود جای میدهد.
مثالها
ورودی:
json
{
"inbounds": [
{
"type": "tuic",
"tag": "tuic-in",
"listen": "::",
"listen_port": 443,
"users": [
{ "name": "alice", "uuid": "a3482e88-686a-4a58-8126-99c9df64b7bf", "password": "<password>" }
],
"congestion_control": "bbr",
"auth_timeout": "3s",
"heartbeat": "10s",
"tls": {
"enabled": true,
"alpn": ["h3"],
"certificate_path": "/etc/ssl/cert.pem",
"key_path": "/etc/ssl/key.pem"
}
}
]
}خروجی:
json
{
"outbounds": [
{
"type": "tuic",
"tag": "tuic-out",
"server": "example.com",
"server_port": 443,
"uuid": "a3482e88-686a-4a58-8126-99c9df64b7bf",
"password": "<password>",
"congestion_control": "bbr",
"udp_relay_mode": "native",
"zero_rtt_handshake": false,
"heartbeat": "10s",
"tls": { "enabled": true, "server_name": "example.com", "alpn": ["h3"] }
}
]
}نکات
udp_relay_mode: nativeپیشفرض توصیهشده است. فقط در صورتی بهquicسوئیچ کنید که از یک middlebox عبور میکنید که دیتاگرامهای QUIC را با DPI دور میاندازد.zero_rtt_handshake: trueدر اتصال مجدد 0-RTT را فعال میکند. اولین اتصال همچنان یک دستدهی کامل انجام میدهد. این بهینهسازی در شبکههای موبایل که اغلب دوباره resolve / متصل میشوند بیشترین اثر را دارد.auth_timeoutدر سرور اعمال میشود. اگر ورودی هیچ قاب احراز هویتی در این بازه نبیند، اتصال QUIC بیصدا بسته میشود.udp_over_streamیک ضامن سازگاری است — هیچ انحراف مشخصاتی در سرور TUIC درگیر نیست؛ هر دو سمت فقط باید موافق باشند.
نکات بینهستهای
- Xray-core از TUIC پشتیبانی نمیکند. به TUIC — Xray-core مراجعه کنید.
- mihomo از نام فیلدها در
kebab-case(congestion-controller،udp-relay-mode) استفاده میکند، شکل قدیمیترtokenرا برای سازگاری پشتیبانی میکند و ضامنهای تنظیم QUIC بیشتری (اندازهٔ پنجرهها، کشف MTU، نمایه BBR) ارائه میدهد. همچنین یک بلوک سطح بالای منحصربهفردtuic-serverبهعنوان روشی جایگزین برای اعلام یک ورودی دارد. به TUIC — mihomo مراجعه کنید.
منبع: option/tuic.go:5-33 · v1.13.11 (553cfa1)
