AnyTLS — sing-box
AnyTLS یک تونل به شکل TLS است که از ترفندهای padding برای استتار شکل ترافیک خود استفاده میکند. sing-box اولین پیادهسازی پایدار بود؛ از هر دو سمت ورودی و خروجی با یک کلاینت استخر نشست پشتیبانی میکند.
ورودی
type: "anytls":
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
users | []AnyTLSUser | [] | [AnyTLSUser] | کاربران پذیرفتهشده. |
padding_scheme | badoption.Listable[string] | (server default) | <scheme line> | [<scheme line>] | طرح padding سفارشی برای شکل دادن به ترافیک سیم. یک رشتهٔ واحد یا فهرستی از رشتهها را میپذیرد؛ مقدار خالی / تنظیمنشده از پیشفرض داخلی سرور استفاده میکند. |
منبع: option/anytls.go:5-10 · ثابتشده در v1.13.11 (553cfa1)
این ساختار ListenOptions و InboundTLSOptionsContainer را درون خود جای میدهد. TLS الزامی است — AnyTLS همیشه روی سیم TLS-wrapped است.
users[]
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
name | string | (unset) | <string> | نام نمایشی استفادهشده در آمار و لاگها. |
password | string | (required) | <string> | گذرواژهٔ کاربر. |
منبع: option/anytls.go:12-15 · ثابتشده در v1.13.11 (553cfa1)
خروجی
type: "anytls":
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
password | string | (required) | <string> | گذرواژهٔ سرور. |
idle_session_check_interval | badoption.Duration | 30s | <duration> | هر چند وقت کلاینت استخر را برای نشستهای بیکار جهت بازیافت اسکن میکند. |
idle_session_timeout | badoption.Duration | 30s | <duration> | نشستهایی که بیش از این مدت بیکار باشند در روبش بررسی بعدی بسته میشوند. |
min_idle_session | int | 0 | <int> | حداقل این تعداد نشست بیکار برای استفادهٔ مجدد با تأخیر کم گرم نگه دارد. |
منبع: option/anytls.go:17-25 · ثابتشده در v1.13.11 (553cfa1)
DialerOptions، ServerOptions و OutboundTLSOptionsContainer را درون خود جای میدهد. TLS الزامی است.
مثالها
ورودی:
json
{
"inbounds": [
{
"type": "anytls",
"tag": "anytls-in",
"listen": "::",
"listen_port": 443,
"users": [{ "name": "alice", "password": "<password>" }],
"tls": {
"enabled": true,
"certificate_path": "/etc/ssl/cert.pem",
"key_path": "/etc/ssl/key.pem"
}
}
]
}خروجی با یک استخر نشست که گرم نگه داشته میشود:
json
{
"outbounds": [
{
"type": "anytls",
"tag": "anytls-out",
"server": "example.com",
"server_port": 443,
"password": "<password>",
"min_idle_session": 4,
"idle_session_check_interval": "30s",
"idle_session_timeout": "60s",
"tls": { "enabled": true, "server_name": "example.com" }
}
]
}نکات
padding_schemeیا یک رشتهٔ واحد (یک قاعده در هر خط درون آن) یا فهرستی از رشتهها را میپذیرد. قالب از مشخصات بالادست AnyTLS پیروی میکند — اکثر کاربران باید آن را تنظیمنشده بگذارند و از پیشفرض سرور استفاده کنند.- فیلدهای استخر نشست (
idle_session_check_interval،idle_session_timeout،min_idle_session) فقط برای خروجی هستند. این استخر نشستهای TLS را گرم نگه میدارد تا درخواستهای جدید سطح برنامه بهجای یک دستدهی کامل TLS، یک رفتوبرگشت بپردازند. min_idle_session: 0(پیشفرض) نشستها را بهصورت تنبل بر اساس تقاضا ایجاد میکند و پس ازidle_session_timeoutآنها را میبندد. اگر بار کاری شما انفجارهای درخواست جدید دارد آن را افزایش دهید.
نکات بینهستهای
- Xray-core از AnyTLS پشتیبانی نمیکند. به AnyTLS — Xray-core مراجعه کنید.
- mihomo پشتیبانی کامل AnyTLS را در هر دو سمت با نام فیلدهای kebab-case (
idle-session-check-interval، …) و گزینههای اضافی uTLS fingerprint و ECH دارد. به AnyTLS — mihomo مراجعه کنید.
منبع: option/anytls.go:5-25 · v1.13.11 (553cfa1)
