پیشتنظیمهای ضدسانسور
کارکرد TLS fragment، TLS tricks، uTLS، Multiplex، ECH و TLS spoof، زمانی که کمک میکنند و هزینهٔ آنها.
برخی شبکهها با بررسی نحوهٔ آغاز هر اتصال رمزنگاریشده، پروکسیها را مسدود یا کند میکنند. این گزینهها ظاهر این آغاز را تغییر میدهند. Preset Settings، تنظیمات استتار TLS (TLS Camouflage Settings) و Advanced Settings در ویرایشگر نمایه و انتخاب Custom در چندگانهسازی (Multiplex) فقط در حالت پیشرفته در دسترساند (حالت ساده و پیشرفته را ببینید).
پیشتنظیمها و تنظیمات نمایه
تنظیمات (Settings) ← Preset Settings پیشفرضهای سراسری را نگه میدارد. در ویرایشگر نمایه، Fragment، TLS Tricks، Multiplex و TLS Spoof این انتخابها را دارند: نگه داری مقدار پیشفرض (Keep Default)، یعنی پیروی از Default On در پیشتنظیم (نمایههای جدید از این گزینه استفاده میکنند)، فعال (On) و خاموش (Off). بنابراین Default On فقط روی نمایههایی اثر دارد که روی نگه داری مقدار پیشفرض ماندهاند.
پیشتنظیمها فقط روی نمایههایی اعمال میشوند که روی sing-box اجرا میشوند، بهجز Default Fingerprint مربوط به uTLS که روی هر دو هسته اعمال میشود و پیشتنظیمهای Multiplex مربوط به Xray که نمایههای VLESS (Xray) از آنها استفاده میکنند. sing-box در برابر Xray را ببینید.
هر بار فقط یک چیز را تغییر دهید
هر گزینه در برابر یک روش مسدودسازی کار میکند. هیچکدام همهجا کمک نمیکند و هر کدام ممکن است نمایهای را که پیشتر کار میکرد از کار بیندازد.
- در یک نمایه که کار نمیکند یا کند است، یک گزینه را روشن کنید.
- یک تست URL اجرا کنید و چند وبسایت را باز کنید. اگر چیزی بهتر نشد، گزینه را دوباره روی
نگه داری مقدار پیشفرض(Keep Default) بگذارید و گزینهٔ بعدی را امتحان کنید. - وقتی گزینهای به بیشتر نمایههایتان کمک کرد،
Default Onآن را درPreset Settingsروشن کنید.
قطعهبندی TLS (TLS fragment)
سامانهٔ سانسور اغلب نام سرور (SNI) را در نخستین پیام یک اتصال TLS، یعنی ClientHello، میخواند. TLS fragment این پیام را تقسیم میکند تا یک فیلتر ساده نتواند نام را از یک بسته بخواند. این روش فقط در برابر چنین فیلترهای سادهای کمک میکند.
Fragment را در ویرایشگر نمایه، زیر تنظیمات استتار TLS (TLS Camouflage Settings)، تنظیم کنید. ابتدا Enable TLS Record Fragment را که کنار آن است امتحان کنید: سبکتر است و ClientHello را بهجای چند بسته، به چند رکورد TLS تقسیم میکند.
Preset Settings → TLS → TLS Fragment → Implementation تعیین میکند تقسیم چگونه انجام شود:
built-in(پیشفرض): sing-box پیام ClientHello را به چند بستهٔ TCP تقسیم میکند.Fallback Delayدر نمایه، مثلاً500ms، مکث میان قطعههاست وقتی سیستم نمیتواند آن را اندازه بگیرد.custom: قطعههایی باSizeتصادفی (بایت،10-100) و مکثهایSleep(میلیثانیه،2-5). نمایههای Naive فقط از این پیادهسازی پشتیبانی میکنند.
هزینه: اتصالهای جدید کندتر آغاز میشوند و custom برای نمایه TCP Fast Open را خاموش میکند.
یک قانون مسیریابی هم میتواند اتصالهایی را که با آن منطبق میشوند قطعهبندی کند، مثلاً اتصالهای مستقیم به سایتی که یک فیلتر آن را بر اساس نامش مسدود میکند. tls_fragment را در قوانین پیشرفته ببینید.
ترفندهای TLS (TLS tricks)
TLS tricks نام سرور را با ترکیبی از حروف بزرگ و کوچک مینویسد، مثلاً ExAmPlE.com. سرورها به بزرگی و کوچکی حروف توجهی ندارند، اما فیلتری که دنبال نام دقیق میگردد ممکن است آن را تشخیص ندهد. TLS Tricks را در ویرایشگر نمایه، زیر تنظیمات استتار TLS (TLS Camouflage Settings)، تنظیم کنید.
هزینه: تقریباً هیچ، اما در برابر فیلترهایی که به بزرگی و کوچکی حروف توجه نمیکنند کمکی نمیکند.
اثر انگشت uTLS
uTLS پیام ClientHello را شبیه ClientHello یک مرورگر یا سیستم رایج میکند، بهجای یک کلاینت پروکسی ساده که از روی اثر انگشتش بهآسانی شناسایی میشود.
- برای هر نمایه:
Fingerprintدر ویرایشگر نمایه. لینکهای اشتراکگذاری اغلب آن را باfp=تعیین میکنند. - سراسری:
Preset Settings→TLS→uTLS→Default Fingerprint، برای نمایههایی که اثر انگشت خودشان را ندارند. تا وقتی خالی است (پیشفرض)، این نمایهها روی sing-box از uTLS استفاده نمیکنند، در REALITY روی sing-box ازrandomو روی Xray ازchromeاستفاده میکنند. نمایههای Hysteria، TUIC، Juicity و Naive از uTLS استفاده نمیکنند. - گزینهها:
chrome،firefox،edge،safari،360،qq،ios،android،random،randomizedوunsafe.unsafeuTLS را خاموش میکند، حتی وقتیDefault Fingerprintتنظیم شده باشد، و فقط در این حالت فیلدCipher Suitesنمایه اعمال میشود (مجموعهرمزهای TLS 1.2، جداشده با دونقطه؛ آن را خالی بگذارید، مگر اینکه سرورتان به آن نیاز داشته باشد).
هزینه: اندک. اگر سروری با یک اثر انگشت از کار افتاد، اثر انگشت دیگری را امتحان کنید یا فیلد را خالی کنید.
چندگانهسازی (Multiplex)
Multiplex (mux) چندین اتصال را درون یک اتصال به سرور حمل میکند؛ در نتیجه صفحهها به دستدهیهای (handshake) کمتری نیاز دارند و ناظر اتصالهای کمتری میبیند. سرور باید از mux با همان پروتکل پشتیبانی کند، و اگر از padding استفاده میکنید، از آن هم.
چندگانهسازی (Multiplex) را در ویرایشگر نمایه تنظیم کنید (در نمایههای VLESS (Xray) بهجای فعال و خاموش، Enabled و Disabled آمده است). Custom ← Configure نسخهای از فیلدهای پیشتنظیم را مخصوص همان نمایه میکند؛ نمایههایی که از لینک یا اشتراکی با تنظیمات mux مخصوص خودشان آمدهاند، با Custom باز میشوند. Multiplex برای نمایههای VLESS با flow برابر با xtls-rprx-vision غیرفعال است و برای XDRIVE لازم است.
پیشتنظیمهای sing-box (Preset Settings → Multiplex → Sing-box):
Protocol:smux،yamuxیاh2mux.Mode: باMax Streams، وقتی یک اتصال این تعداد جریان را حمل کند، اتصال دیگری باز میشود. باMax Connections، حداکثر همین تعداد اتصال نگه داشته میشود و فقط وقتی اتصال جدیدی باز میشود که کمکارترین اتصالMin Streamsجریان را حمل کند.Padding: به ترافیک چندگانهشده padding اضافه میکند.TCP Brutal: حتی هنگام از دست رفتن بستهها، با سرعتهای ثابتی که درUpload (Mb/s)وDownload (Mb/s)وارد میکنید ارسال میکند. هر دو را وارد کنید. به پشتیبانی سرور نیاز دارد و در این حالت همهٔ جریانها از یک اتصال مشترک استفاده میکنند.
پیشتنظیمهای Xray (Preset Settings → Multiplex → Xray):
Concurrency: تعداد جریانهای هر اتصال، پیش از اینکه اتصال دیگری باز شود.0از پیشفرض Xray، یعنی 8، استفاده میکند و-1ترافیک TCP را بیرون از mux میفرستد.Max Connections: حداکثر این تعداد اتصال، برای TCP و XUDP هر کدام جداگانه. خالی یعنی بدون محدودیت.XUDP Concurrency: تعداد جریانهای UDP در هر اتصال، روی اتصالهای جداگانهٔ خودشان.0ترافیک UDP را روی اتصالهای TCP حمل میکند و-1آن را بیرون از mux میفرستد.UDP/443، که بیشتر QUIC است:Reject(پیشفرض) باعث میشود مرورگرها به TCP برگردند،Allowآن را از راه mux حمل میکند وSkipآن را بیرون از mux میفرستد.
هزینه: هر چیزی که روی یک اتصال است با هم گیر میکند. اتصالهای موازی زیاد، مثلاً از یک کلاینت تورنت، ممکن است باعث شوند Throne پردازنده (CPU) را زیاد مصرف کند (#1090)؛ Multiplex را برای آن نمایه خاموش کنید. نخستین درخواست روی یک اتصال mux جدید کندتر است، پس مهلت زمانی (timeout) کوتاه در تست تأخیر ممکن است نمایهٔ سالم را ناموفق گزارش کند.
ECH
Encrypted Client Hello (ECH) نام سرور را رمزنگاری میکند تا ناظر نتواند آن را بخواند. فقط وقتی کار میکند که سرور از آن پشتیبانی کند و برای هر نمایه جداگانه تنظیم میشود:
- نمایه را باز کنید، روی
Advanced Settingsکلیک کنید وEnable ECHرا تیک بزنید. - اختیاری: پیکربندی ECH سرور را در
ECH Configجایگذاری کنید. اگر رویNot Setبماند، پیکربندی در DNS جستوجو میشود، برای دامنهٔECH Query Name / Resolverیا در غیر این صورت نام سرور. برای پرسیدن از یک سرور DNS بهجای DNS مستقیم، آن را پس از یک+اضافه کنید، برای مثالcloudflare-ech.com+https://1.1.1.1/dns-query. - در هر دو پنجره روی
تایید(OK) کلیک کنید.
نمایههای Xray بهجای آن از ECH Config List در تنظیمات TLS خود استفاده میکنند: پیکربندی بهصورت Base64، یا یک دامنه و یک سرور DNS-over-HTTPS، مانند cloudflare-ech.com+https://8.8.8.8/dns-query. لینکهای اشتراکگذاری ECH را در ech= دارند؛ ECH و پینهای گواهی در لینکها را ببینید.
هزینه: اگر سرور از 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(خالی: پیشفرض هسته). - برای هر نمایه:
Advanced Settings←TLS Spoof،Spoof SNIوMethod. فیلدهای خالی از پیشتنظیمها استفاده میکنند. نمایهای کهSpoof SNIخودش را دارد، حتی رویKeep Defaultهم جعل انجام میدهد. - برای هر سایت: یک قانون مسیریابی پیشرفته با
tls_spoofوtls_spoof_method؛ قوانین پیشرفته را ببینید.
TLS spoof بستههای خام میفرستد، بنابراین هسته به دسترسیهایی نیاز دارد که حالت TUN تنظیم میکند: دسترسی مدیر (Administrator) در Windows (نه در Windows ARM64)، root یا CAP_NET_RAW و CAP_NET_ADMIN در Linux، و root در macOS که روش wrong-timestamp در آن کار نمیکند.
هزینه: به دسترسی بالاتر نیاز دارد و فقط در برابر فیلترهایی کمک میکند که برخی نامها را مجاز میدانند.
تنظیم دقیق HTTP/2 و QUIC
Preset Settings → HTTP/2 & QUIC پیشفرضهایی مانند Idle Timeout، Keep Alive Period و Initial Packet Size را برای نمایههای Hysteria، TUIC و MASQUE تعیین میکند. هر نمایه میتواند آنها را در Advanced Settings → QUIC Parameters با مقدار خودش جایگزین کند. این فیلدها را خالی بگذارید تا پیشفرضهای هسته به کار روند، مگر اینکه مستندات سرورتان مقدارهای دیگری بخواهد.
Android
- همین پیشتنظیمها در
تنظیمات(Settings) ←از پیشتنظیمها(Presets) قرار دارند وDefault Onدر آنجابهطور پیشفرض روشن(On by default) نام دارد. ECH برای هر نمایه جداگانه تنظیم میشود. فعال کردن مالتیپلکسر(Enable multiplexer) در ویرایشگر نمایه گزینهٔسفارشی(Custom) را هم دارد که فیلدهای Multiplex را درست زیر خودش نشان میدهد.- قوانین مسیریابی میتوانند اتصالهایی را که با آنها تطبیق دارند قطعهبندی کنند، با
قطعهبندی TLS(TLS fragment)،تأخیر بازگشت قطعهبندی TLS(TLS fragment fallback delay) وقطعهبندی رکورد TLS(TLS record fragment). - TLS spoof در دسترس نیست.