پیش‌تنظیم‌های ضدسانسور

کارکرد TLS fragment، TLS tricks، uTLS، Multiplex، ECH و TLS spoof، زمانی که کمک می‌کنند، هزینهٔ آن‌ها و نحوهٔ ترکیب پیش‌تنظیم‌ها با تنظیمات نمایه.

برخی شبکه‌ها با بررسی نحوهٔ آغاز هر اتصال رمزنگاری‌شده، پروکسی‌ها را مسدود یا کند می‌کنند. Throne چند گزینه دارد که ظاهر این آغاز را تغییر می‌دهند. این صفحه توضیح می‌دهد هر گزینه چه می‌کند، کی می‌تواند کمک کند و چه هزینه‌ای دارد.

پیش‌تنظیم‌ها و تنظیمات نمایه

پیش‌فرض‌های سراسری در تنظیمات (Settings) ← Preset Settings قرار دارند:

زبانه گزینه‌ها (پیش‌فرض)
Multiplex sing-box: Protocol (smux)، Concurrency (8)، Padding (خاموش)، Default On (خاموش). Xray: Concurrency (8)، Default Mux On (خاموش).
TLS TLS Fragment: Implementation (built-in)، Size (10-100)، Sleep (2-5)، Default On (خاموش). TLS Tricks: Default On (خاموش). uTLS: Default Fingerprint (خالی). TLS Spoof: Spoof SNI (خالی)، Method (خالی)، Default On (خاموش).
HTTP/2 & QUIC تنظیم دقیق برای نمایه‌های مبتنی بر QUIC. فیلدهای خالی پیش‌فرض‌های هسته را نگه می‌دارند.

هر نمایه می‌تواند در ویرایشگر خود، پیش‌تنظیم‌ها را با مقدار خودش جایگزین کند. Fragment، TLS Tricks، Multiplex و TLS Spoof سه انتخاب دارند:

انتخاب در نمایه نتیجه
نگه داری مقدار پیشفرض (Keep Default) از Default On در پیش‌تنظیم پیروی می‌کند. نمایه‌های جدید از این گزینه استفاده می‌کنند.
فعال (On) برای این نمایه همیشه روشن است.
خاموش (Off) برای این نمایه همیشه خاموش است.

بنابراین Default On یک گزینه را فقط برای نمایه‌هایی روشن می‌کند که روی نگه داری مقدار پیشفرض (Keep Default) مانده‌اند.

TLS Fragment، TLS Tricks، TLS Spoof و پیش‌تنظیم‌های Multiplex مربوط به sing-box فقط روی نمایه‌هایی اعمال می‌شوند که روی sing-box اجرا می‌شوند. نمایه‌های VLESS (Xray) انتخاب Multiplex خودشان را دارند (نگه داری مقدار پیشفرض، Enabled، Disabled) که از Default Mux On پیروی می‌کند. Default Fingerprint مربوط به uTLS روی هر دو هسته اعمال می‌شود. sing-box در برابر Xray را ببینید.

هر بار فقط یک چیز را تغییر دهید

هر گزینه در برابر یک روش مسدودسازی مشخص کار می‌کند. هیچ‌کدام همه‌جا کمک نمی‌کند و هر کدام ممکن است نمایه‌ای را که پیش‌تر کار می‌کرد از کار بیندازد.

  1. یک نمایه را انتخاب کنید که کار نمی‌کند یا کند است.
  2. در ویرایشگر آن، یک گزینه را روشن کنید.
  3. نمایه را تست کنید: یک تست URL اجرا کنید، سپس چند وب‌سایت را باز کنید.
  4. اگر چیزی بهتر نشد، گزینه را دوباره روی نگه داری مقدار پیشفرض (Keep Default) بگذارید و گزینهٔ بعدی را امتحان کنید.
  5. وقتی گزینه‌ای به بیشتر نمایه‌هایتان کمک کرد، Default On آن را در Preset Settings روشن کنید.

Multiplex، padding آن، TCP Brutal و ECH به پشتیبانی سرور هم نیاز دارند. برای نحوهٔ تست نمایه‌ها، تست URL را ببینید.

قطعه‌بندی TLS (TLS fragment)

سامانهٔ سانسور اغلب نام سرور (SNI) را در نخستین پیام یک اتصال TLS، یعنی ClientHello، می‌خواند. TLS fragment این پیام را به قطعه‌های کوچک تقسیم می‌کند تا یک فیلتر ساده نتواند نام را از یک بسته بخواند. این روش فقط در برابر چنین فیلترهای ساده‌ای کمک می‌کند.

در ویرایشگر نمایه، زیر تنظیمات استتار TLS (TLS Camouflage Settings)، Fragment را روی نگه داری مقدار پیشفرض (Keep Default)، فعال (On) یا خاموش (Off) بگذارید. Preset Settings → TLS → TLS Fragment → Implementation تعیین می‌کند تقسیم چگونه انجام شود:

Implementation نحوهٔ کار تنظیمات
built-in (پیش‌فرض) sing-box پیام ClientHello را به چند بستهٔ TCP تقسیم می‌کند. Fallback Delay در نمایه، برای مثال 500ms: مکث میان قطعه‌ها وقتی سیستم نمی‌تواند آن را اندازه بگیرد.
custom ClientHello در قطعه‌هایی با اندازهٔ تصادفی و با مکث‌های کوتاه میان آن‌ها فرستاده می‌شود. Size: تعداد بایت هر قطعه، به‌صورت بازه (10-100). Sleep: میلی‌ثانیه‌های میان قطعه‌ها، به‌صورت بازه (2-5).

Enable TLS Record Fragment، در همین بخش ویرایشگر، گزینه‌ای جداگانه و سبک‌تر است. این گزینه ClientHello را به‌جای چند بسته، به چند رکورد TLS تقسیم می‌کند. پیش از Fragment آن را امتحان کنید.

هزینه: اتصال‌های جدید کندتر آغاز می‌شوند. با پیاده‌سازی custom، TCP Fast Open برای نمایه خاموش می‌شود. نمایه‌های Naive فقط از پیاده‌سازی custom پشتیبانی می‌کنند.

ترفندهای TLS (TLS tricks)

TLS tricks نام سرور را با ترکیبی از حروف بزرگ و کوچک می‌نویسد، برای مثال ExAmPlE.com به‌جای example.com. سرورها معمولاً به بزرگی و کوچکی حروف توجهی ندارند، اما فیلتری که دنبال نام دقیق می‌گردد ممکن است آن را تشخیص ندهد.

TLS Tricks را در نمایه، زیر تنظیمات استتار TLS (TLS Camouflage Settings)، روی فعال (On) بگذارید، یا برای همهٔ نمایه‌هایی که روی نگه داری مقدار پیشفرض (Keep Default) مانده‌اند، Preset Settings → TLS → TLS Tricks → Default On را تیک بزنید.

هزینه: تقریباً هیچ. در برابر فیلترهایی که به بزرگی و کوچکی حروف توجه نمی‌کنند کمکی نمی‌کند.

اثر انگشت uTLS

هر کلاینت TLS اثر انگشت مشخصی دارد: انتخاب و ترتیب گزینه‌ها در ClientHello آن. اثر انگشت یک کلاینت پروکسی ساده به‌آسانی شناسایی می‌شود. uTLS به‌جای آن، اثر انگشت یک مرورگر یا سیستم رایج را تقلید می‌کند.

  • برای هر نمایه: Fingerprint در ویرایشگر نمایه. لینک‌های اشتراک‌گذاری اغلب آن را با fp= تعیین می‌کنند.
  • سراسری: Preset Settings → TLS → uTLS → Default Fingerprint. نمایه‌هایی که اثر انگشت خودشان را ندارند، روی هر دو هسته از آن استفاده می‌کنند. وقتی خالی است (پیش‌فرض)، نمایه‌های sing-box بدون اثر انگشت از uTLS استفاده نمی‌کنند و نمایه‌های Xray بدون اثر انگشت از chrome استفاده می‌کنند. نمایه‌های Hysteria، TUIC، Juicity و Naive از uTLS استفاده نمی‌کنند.
  • گزینه‌ها: chrome، firefox، edge، safari، 360، qq، ios، android، random، randomized.

یک نمایهٔ REALITY در sing-box که هیچ اثر انگشتی ندارد، از random استفاده می‌کند.

هزینه: اندک. اگر سروری با یک اثر انگشت از کار افتاد، اثر انگشت دیگری را امتحان کنید یا فیلد را خالی کنید.

چندگانه‌سازی (Multiplex)

Multiplex (mux) چندین اتصال را درون یک اتصال به سرور حمل می‌کند. در نتیجه باز کردن یک صفحه به اتصال‌ها و دست‌دهی‌های (handshake) جدید کمتری نیاز دارد و ناظر اتصال‌های کمتری می‌بیند.

  • برای هر نمایه: چندگانه‌سازی (Multiplex) در ویرایشگر نمایه: نگه داری مقدار پیشفرض، فعال یا خاموش.
  • پیش‌تنظیم‌های sing-box: Protocol (smux، yamux یا h2mux)، Concurrency (تعداد جریان‌ها در هر اتصال)، Padding (به هر نمایهٔ چندگانه‌شده padding اضافه می‌کند) و Default On.
  • پیش‌تنظیم‌های Xray: Concurrency و Default Mux On.

سرور باید از mux با همان پروتکل پشتیبانی کند. padding هم به پشتیبانی سرور نیاز دارد. ویرایشگر نمایه، Multiplex را برای نمایه‌های VLESS با flow برابر با xtls-rprx-vision غیرفعال می‌کند.

TCP Brutal

فعال کردن TCP Brutal (Enable TCP Brutal) باعث می‌شود اتصال چندگانه‌شده، حتی هنگام از دست رفتن بسته‌ها، با سرعت‌های ثابتی که در Brutal Download Speed و Brutal Upload Speed (Mb/s) وارد می‌کنید ارسال کند. این گزینه به سروری با پشتیبانی از TCP Brutal نیاز دارد و فقط وقتی کار می‌کند که چندگانه‌سازی (Multiplex) نمایه روی فعال (On) باشد.

وقتی mux ضرر دارد

  • همهٔ ترافیک از یک اتصال مشترک استفاده می‌کند. اگر آن اتصال گیر کند، همهٔ صفحه‌ها و دانلودهای روی آن هم گیر می‌کنند.
  • اتصال‌های موازی زیاد، برای مثال از یک کلاینت تورنت، ممکن است وقتی mux روشن است باعث شوند Throne پردازنده (CPU) را زیاد مصرف کند (#1090). Multiplex را برای آن نمایه خاموش کنید.
  • نخستین درخواست روی یک اتصال mux جدید بیشتر طول می‌کشد. در این حالت، مهلت زمانی (timeout) کوتاه در تست تأخیر ممکن است نمایهٔ سالم را ناموفق گزارش کند.

ECH

Encrypted Client Hello (ECH) نام سرور را درون ClientHello رمزنگاری می‌کند تا ناظر نتواند آن را بخواند. این قابلیت فقط وقتی کار می‌کند که سرور از ECH پشتیبانی کند. برای ECH پیش‌تنظیمی وجود ندارد؛ آن را برای هر نمایه جداگانه روشن می‌کنید.

  1. نمایه را باز کنید و روی Advanced Settings کلیک کنید.
  2. Enable ECH را تیک بزنید.
  3. اختیاری: روی ECH Config کلیک کنید و پیکربندی ECH سرور را جای‌گذاری کنید. اگر روی Not Set بماند، هسته پیکربندی را در DNS جست‌وجو می‌کند.
  4. اختیاری: اگر دامنه‌ای که پیکربندی باید برای آن جست‌وجو شود با نام سرور فرق دارد، آن را در ECH Server Name وارد کنید.
  5. روی تایید (OK) کلیک کنید، سپس در ویرایشگر نمایه هم روی تایید کلیک کنید.

هزینه: اگر سرور از ECH پشتیبانی نکند یا پیکربندی پیدا نشود، نمایه کار نمی‌کند.

جعل TLS (TLS spoof)

برخی فیلترها اتصال به چند نام مجاز را عبور می‌دهند و بقیه را مسدود می‌کنند. TLS spoof درست پیش از ClientHello واقعی، یک ClientHello جعلی با یک نام مجاز می‌فرستد. پیام جعلی عمداً نامعتبر ساخته می‌شود تا سرور آن را نادیده بگیرد، در حالی که فیلتر آن را می‌خواند و اجازهٔ عبور اتصال را می‌دهد.

تنظیمات سراسری در Preset Settings → TLS → TLS Spoof قرار دارند:

  • Spoof SNI: نام مجازی که در پیام جعلی قرار می‌گیرد.
  • Method: روش نامعتبر ساختن پیام جعلی: wrong-sequence، wrong-checksum، wrong-ack، wrong-md5 یا wrong-timestamp. اگر خالی باشد، پیش‌فرض هسته به کار می‌رود.
  • Default On: جعل برای هر نمایه‌ای که روی Keep Default مانده است. فقط پس از وارد کردن Spoof SNI می‌توانید آن را تیک بزنید.

برای هر نمایه، Advanced Settings را باز کنید و TLS Spoof (Keep Default، On یا Off)، Spoof SNI و Method را تعیین کنید. فیلد خالی از مقدار پیش‌تنظیم استفاده می‌کند. نمایه‌ای که Spoof SNI خودش را دارد، حتی روی Keep Default هم جعل انجام می‌دهد.

برای جعل فقط در برخی سایت‌ها، از یک قانون مسیریابی پیشرفته با کنش (action) route یا route-options استفاده کنید و tls_spoof و tls_spoof_method را تعیین کنید. مسیریابی را ببینید.

TLS spoof بسته‌های خام می‌فرستد؛ بنابراین هسته به دسترسی بالاتر نیاز دارد:

  • Windows: Throne باید برای درایور WinDivert با دسترسی مدیر (administrator) اجرا شود. TLS spoof روی Windows ARM64 در دسترس نیست.
  • Linux: هسته به root یا به capabilityهای CAP_NET_RAW و CAP_NET_ADMIN نیاز دارد.
  • macOS: هسته به root نیاز دارد. روش wrong-timestamp روی macOS کار نمی‌کند.

تنظیم دسترسی‌ها برای حالت TUN این دسترسی‌ها را به هسته می‌دهد. حالت TUN را ببینید.

هزینه: به دسترسی بالاتر نیاز دارد و فقط در برابر فیلترهایی کمک می‌کند که برخی نام‌ها را مجاز می‌دانند.

تنظیم دقیق HTTP/2 و QUIC

Preset Settings → HTTP/2 & QUIC پیش‌فرض‌هایی را برای نمایه‌های Hysteria، TUIC و MASQUE تعیین می‌کند: Idle Timeout، Keep Alive Period، Stream Receive Window، Connection Receive Window، Max Concurrent Streams، Initial Packet Size و Disable Path MTU Discovery. فیلدهای خالی پیش‌فرض‌های هسته را نگه می‌دارند. هر نمایه می‌تواند آن‌ها را در Advanced Settings → QUIC Parameters با مقدار خودش جایگزین کند.

این فیلدها را خالی بگذارید، مگر اینکه مستندات سرورتان مقدارهای دیگری بخواهد.

Android

  • همین پیش‌تنظیم‌ها در تنظیمات (Settings) ← Presets قرار دارند: Multiplex (sing-box و Xray)، TLS Client Hello fragment، TLS tricks، uTLS و نیز HTTP/2 و QUIC. در آنجا Default On با نام On by default آمده است.
  • نمایه‌ها همان انتخاب Keep default را دارند و ECH برای هر نمایه جداگانه تنظیم می‌شود.
  • TLS spoof در Android در دسترس نیست.