# راهنمای کامل Aether این راهنما همه‌چیزی که برای استفاده از Aether لازم داری رو با زبان ساده توضیح می‌ده، طوری که حتی اگه اولین بار که همچین برنامه‌ای رو اجرا می‌کنی، گیج نشی. ## Aether چیکار می‌کنه؟ Aether یه «تونل» می‌سازه. یعنی یه مسیر رمزنگاری‌شده به بیرون از شبکهٔ فیلترشده باز می‌کنه، و کنار خودش (روی کامپیوتر خودت) یه پراکسی محلی به اسم SOCKS5 بالا میاره. هر برنامه‌ای که بتونه از یه پراکسی رد بشه — مرورگر، ترمینال، یا کل سیستم — ترافیکش از داخل همین تونل عبور می‌کنه. آدرس پیش‌فرض این پراکسی همیشه اینه: `127.0.0.1:1819` ## اجرا کردن: سؤال‌های تعاملی، پرچم‌های خط فرمان، یا متغیر محیطی Aether رو می‌شه سه‌جوری کنترل کرد، و می‌تونی هرکدوم رو با بقیه ترکیب کنی: ۱. **سؤال‌های تعاملی** — فقط برنامه رو بدون هیچ آرگومانی اجرا کن و به سؤال‌ها جواب بده. ۲. **پرچم‌های خط فرمان (flags)** — یه نحو کوتاه و به‌یادماندنی برای انتخاب‌های رایج. ۳. **متغیرهای محیطی** — برای اسکریپت‌ها، سرویس‌ها، و کنترل کامل (هر پرچم معادل یکیشونه). نحو پرچم‌ها این‌شکلیه: ``` ./aether --bind 127.0.0.1:1819 -4 --masque --turbo --noize firewall ./aether --wg --scan balanced --keepalive 25 ./aether --gool --wg-peer 162.159.192.1:2408 --dual ``` با `./aether --help` می‌تونی کل لیست رو ببینی. رایج‌ترین‌هاش: ``` --bind آدرس گوش‌دادن پراکسی SOCKS5 (پیش‌فرض 127.0.0.1:1819) -4 / -6 / --dual اسکن فقط IPv4 / فقط IPv6 / هر دو --peer مجبور کردن یک پیر و رد شدن از اسکن --masque / --wg / --gool انتخاب پروتکل --scan turbo | balanced | thorough | stealth --turbo/--balanced/--thorough/--stealth میانبر برای --scan --noize پروفایل استتار --h2, --http2 استفاده از HTTP/2 به‌جای HTTP/3 برای MASQUE --fragment فرگمنت کردن TLS ClientHello (فقط روی HTTP/2) --quick-reconnect بدون سؤال، همیشه از آخرین گیت‌وی سالم استفاده کن --no-quick-reconnect بدون سؤال، همیشه از نو اسکن کن ``` هر پرچمی که ندی، به معادل متغیر محیطی‌اش برمی‌گرده، و هر متغیر محیطی که تنظیم نکنی، به سؤال تعاملی (یا یه مقدار پیش‌فرض معقول) برمی‌گرده. تنظیم کردن پرچم یا متغیر همون چیزیه که اون سؤال مربوطه رو خاموش می‌کنه. ## سه روش اتصال، هر کدوم یه منطق متفاوت اولین چیزی که Aether موقع اجرا ازت می‌پرسه اینه که با کدوم روش (پروتکل) کار کنه. سه انتخاب داری: ### ۱) MASQUE مدرن‌ترین حالت و پیش‌فرض برنامه. ترافیکت داخل یه اتصال رمزنگاری‌شده مخفی می‌شه که دقیقاً شبیه ترافیک عادی وب‌گردیه. روی شبکه‌هایی که همه‌چیز رو با دقت بررسی می‌کنن، این ساکت‌ترین و کم‌دردسرترین انتخابه. اگه نمی‌دونی از کجا شروع کنی، از همین شروع کن. ### ۲) WireGuard یه تونل کلاسیک، سبک و خیلی سریع. کمترین سربار رو داره، پس وقتی وصل بشه، سریع‌ترین حس رو می‌ده. برای شبکه‌هایی خوبه که فقط آدرس‌های شناخته‌شده رو می‌بندن ولی خیلی موشکافانه دنبال شکل ترافیک نمی‌گردن. ### ۳) تونل‌در‌تونل (gool) این یعنی یه اتصال WireGuard داخل یه اتصال WireGuard دیگه پیچیده می‌شه — دو لایه رمزنگاری روی هم. یه‌کم کندتره ولی وقتی یه لایه برای رد شدن کافی نیست، می‌تونه فرق رو بسازه. اگه WireGuard معمولی وصل می‌شه ولی پایدار نیست، این حالت رو امتحان کن. ## اسکن: چرا Aether آدرس ثابت نداره؟ Aether هیچ آدرسی رو از قبل توی خودش ثابت نکرده. دلیلش ساده‌ست: هر شبکه و هر اپراتور فرق داره، و آدرسی که امروز روی یه اینترنت کار می‌کنه، ممکنه روی یه اینترنت دیگه اصلاً جواب نده. پس به‌جای حدس زدن، برنامه خودش یه دور «اسکن» می‌زنه: یه‌سری آدرس و پورت مختلف رو امتحان می‌کنه، جواب واقعی و سرعت پاسخ (پینگ) هر کدوم رو اندازه می‌گیره، و بهترینی که پیدا کرد رو انتخاب می‌کنه. موقع اجرا ازت می‌پرسه که این اسکن چقدر جدی و دقیق باشه. چهار حالت داری: - **turbo** — تند و زود. با اولین جوابی که گیر بیاره راضی می‌شه. برای وقتی که فقط می‌خوای سریع وصل بشی. - **balanced** — حالت پیش‌فرض و متعادل. برای بیشتر مواقع همین خوبه. - **thorough** — عمیق‌تر می‌گرده، دنبال بهترین پینگ. کندتره ولی نتیجه باکیفیت‌تره. - **stealth** — آروم و صبور. آهسته اسکن می‌کنه تا سروصدای کمتری روی شبکه بذاره (کمتر جلب توجه کنه). همچنین ازت می‌پرسه که روی آدرس‌های IPv4 بگرده، IPv6، یا هر دو. اگه اینترنتت IPv6 نداره، روی IPv4 بمون. ## سیستم نویز و پروفایل‌های استتار این مهم‌ترین بخشیه که باعث می‌شه Aether روی اینترنت سخت‌گیر هم زنده بمونه. ### مشکل از کجا میاد؟ دستگاه‌های بازرسی عمیق بسته‌ها (که بهشون DPI می‌گن) اول هر اتصال، دنبال یه امضای مشخص و ثابت می‌گردن. هر پروتکل موقع «دست‌دادن» اولیه یه شکل خاص داره، و همین شکلِ خاص لو میده که چه پروتکلی داره استفاده می‌شه. ### راه‌حل Aether چیه؟ Aether قبل از اینکه گفت‌وگوی واقعی شروع بشه، یه‌سری بستهٔ «آشغال» و تصادفی می‌فرسته تا شروع اتصال از بیرون شبیه یه الگوی قابل‌شناسایی نباشه. همچنین می‌تونه بین مراحل دست‌دادن یه‌کم مکث بذاره و با فاصله‌های نامنظم بسته بفرسته، تا الگوی زمانیِ ترافیک هم قابل‌پیش‌بینی نباشه. ### پروفایل‌های استتار برای MASQUE - **firewall** (پیش‌فرض، و توصیه‌شده برای ایران) — متعادله؛ هم خوب رد می‌شه، هم زیاد سرعت رو فدا نمی‌کنه. - **gfw** — سنگین‌تره. وقتی firewall جواب نداد این رو امتحان کن. - **off** — بدون استتار. فقط برای شبکه‌های آزاد یا تست. ### پروفایل‌های استتار برای WireGuard و gool - **balanced** (پیش‌فرض، و توصیه‌شده برای ایران) — نقطهٔ طلایی بین مخفی‌کاری و سرعت. - **aggressive** — سنگین‌ترین حالت. بیشترین بستهٔ فریب‌دهنده و لایه‌های استتار رو می‌فرسته. برای اینترنت خیلی سخت‌گیر. - **light** — حداقلیه. یه‌کم استتار با کمترین سربار. - **off** — بدون استتار. ### قاعدهٔ ساده برای انتخاب از پیش‌فرض شروع کن. اگه وصل نشد یا مدام قطع می‌شد، یه پله سنگین‌ترش کن (برای MASQUE برو روی gfw، برای WireGuard و gool برو روی aggressive). اگه اینترنتت آزاده و فقط سرعت می‌خوای، بیا روی light یا off. ## تفاوت h2 و h3 در MASQUE، و اینکه کدوم رو انتخاب کنی این بخش فقط مخصوص MASQUE هست و خیلی به دردت می‌خوره. MASQUE توی Aether دو مسیر داره که می‌تونه ترافیک رو ازش رد کنه: ### h3 (پیش‌فرض) h3 یعنی HTTP/3 که روی یه پروتکل به اسم QUIC سوار می‌شه، و QUIC هم خودش روی UDP کار می‌کنه. مزیتش اینه که سریعه، دست‌دادنش کوتاه‌تره و برای وصل شدن رفت‌و‌برگشت کمتری لازم داره، و اگه یه بسته گم بشه، کل اتصال گیر نمی‌کنه. روی بیشتر اینترنت‌های سالم، h3 بهترین تجربه رو می‌ده. ### h2 h2 یعنی HTTP/2 که روی TLS و TCP کار می‌کنه — دقیقاً همون چیزی که هر سایت HTTPS معمولی استفاده می‌کنه. یه‌کم کندتر از h3 هست، چون توی TCP وقتی یه بسته گم بشه، بقیه هم معطل می‌مونن. ولی یه برتری بزرگ داره: دقیقاً شبیه ترافیک وب معمولیه و روی TCP کار می‌کنه (نه UDP). ### کدوم رو کِی انتخاب کنی؟ قاعدهٔ ساده اینه: - **اول h3 رو امتحان کن** (همون پیش‌فرض). اگه وصل شد و پایدار موند، کارت تمومه. - **اگه اینترنتت UDP یا QUIC رو می‌بنده یا خفه می‌کنه** — یعنی h3 اصلاً وصل نمی‌شه یا مدام قطع می‌شه — برو روی h2. بعضی شبکه‌ها عمداً UDP رو خفه می‌کنن تا QUIC کار نکنه؛ توی این حالت h2 که روی TCP کار می‌کنه، از لای محدودیت رد می‌شه. برای روشن کردن h2 کافیه قبل از اجرا این متغیر رو تنظیم کنی (یا پرچم `--h2` رو بدی): ``` AETHER_MASQUE_HTTP2=1 ./target/release/aether ./target/release/aether --h2 ``` مقدارهای `1`، `true`، `h2`، `yes` و `on` همه‌شون h2 رو روشن می‌کنن. اگه این رو نذاری، همیشه h3 استفاده می‌شه. ### فرگمنت کردن ClientHello (فقط h2) توی بعضی شبکه‌ها، DPI همون لحظه که یه رکورد TLS ClientHello کامل و یکپارچه با یه SNI قابل‌شناسایی می‌بینه، اتصال رو می‌بنده. وقتی MASQUE رو روی h2 اجرا می‌کنی، Aether می‌تونه اولین بسته‌ی TLS (همون ClientHello) رو به چند تکه‌ی کوچیک بشکنه و با یه تأخیر تصادفی کوتاه بین‌شون بفرسته، طوری که هیچ بسته‌ی تکی روی خط، کل دست‌دادن یا SNI رو یک‌جا نداشته باشه. این همون تکنیک معروف "TLS ClientHello fragmentation" هست — این قابلیت فقط برای h2 موجوده چون نیاز به یه استریم TCP برای فرگمنت کردن دارد؛ h3 روی QUIC/UDP کار می‌کنه که این مفهوم اونجا به همین شکل معنی نداره. پیش‌فرض خاموشه چون به هر بار reconnect یه تأخیر کوچیک اضافه می‌کنه. با این روشنش کن: ``` AETHER_MASQUE_H2_FRAGMENT=1 ./target/release/aether --h2 ./target/release/aether --h2 --fragment ``` می‌تونی اندازه‌ی تکه‌ها و تأخیرش رو هم تنظیم کنی: ``` AETHER_MASQUE_H2_FRAGMENT_SIZE=8-24 AETHER_MASQUE_H2_FRAGMENT_DELAY=5-15 ./target/release/aether --h2 --fragment ./target/release/aether --h2 --fragment --fragment-size 8-24 --fragment-delay 5-15 ``` هر دو یا یه عدد تکی یا یه بازه‌ی `a-b` قبول می‌کنن — برای اندازه به بایت، برای تأخیر به میلی‌ثانیه. اگه شبکه‌ت دقیقاً دست‌دادن TLS مسیر h2 رو مسدود می‌کنه، قبل از اینکه کامل از h2 دل بکنی این رو امتحان کن. ### چرا یه گیت‌وی فقط بعد از عبور واقعی داده تأیید می‌شه قبلاً هم اسکنر و هم تونل زنده، به محض اینکه جواب `:status 200` از connect-ip می‌گرفتن، اون گیت‌وی رو سالم حساب می‌کردن. توی بعضی شبکه‌ها این کافی نیست: دست‌دادن و جواب کنترلی رد می‌شن، ولی سیستم DPI هر داده‌ای که بعدش فرستاده بشه رو بی‌صدا drop می‌کنه. نتیجه‌اش یه اتصال بود که ظاهراً کار می‌کرد ولی هیچ‌وقت واقعاً ترافیکی ازش رد نمی‌شد. الان Aether یه بسته‌ی پروب کوچیک end-to-end از داخل تونل می‌فرسته و منتظر یه جواب واقعی می‌مونه، قبل از اینکه به یه گیت‌وی اعتماد کنه یا پورت SOCKS5 محلی رو باز کنه. این هم روی اسکن اعمال می‌شه (پس نتیجه‌ی "هیچ نقطهٔ تمیزی پیدا نشد" الان واقعاً یعنی هیچ کاندیدی نتونسته داده رد کنه، نه فقط اینکه هیچ کاندیدی جواب نداده) و هم روی تونل زنده (پورت SOCKS5 بسته می‌مونه تا همون اولین اتصال ثابت کنه می‌تونه ترافیک واقعی رد کنه، نه اینکه بلافاصله بعد از دست‌دادن باز بشه). اگه رفتار قدیمی‌تر و سریع‌تر ولی کمتر مطمئن رو می‌خوای، `AETHER_MASQUE_NO_DATA_CHECK=1` رو تنظیم کن یا پرچم `--no-data-check` رو بده. ## پایدار موندن و اتصال خودکار یه تونل ممکنه ظاهراً باز باشه ولی در عمل مُرده باشه؛ یعنی پراکسی هنوز باز مونده ولی هیچ داده‌ای رد و بدل نمی‌شه. این بیشتر روی حالت gool پیش میاد، وقتی لایهٔ بیرونی توسط شبکه قطع می‌شه ولی پراکسی خبر نداره. اگه تونل MASQUE قطع بشه یا در تأیید data-plane شکست بخوره، Aether الان خودش دوباره وصل می‌شه: یه تأخیر کوتاه صبر می‌کنه (پیش‌فرض ۲ ثانیه، `AETHER_MASQUE_RECONNECT_SECS`) و دوباره دنبال یه گیت‌وی تازه اسکن می‌کنه، به‌جای اینکه برنامه رو ببنده. ## اتصال سریع با آخرین گیت‌وی سالمت اسکن کردن زمان می‌بره، و اگه از همون شبکه زیاد وصل می‌شی، هر بار از نو اسکن کردن اتلاف وقته. Aether آخرین گیت‌وی‌ای که واقعاً کار کرده رو یادش می‌مونه (کنار فایل کانفیگ هویتت، توی یه فایل کوچیک `*-lastconn.toml` — که هیچ‌وقت به گیت کامیت نمی‌شه، به `.gitignore` نگاه کن). دفعه‌ی بعد که Aether رو اجرا کنی، اگه یه گیت‌وی ذخیره‌شده باشه، ازت می‌پرسه: ``` Last working gateway: 162.159.198.1:443 (profile 'firewall') Reconnect to it now without rescanning? [Y/n]: ``` - جواب بده (یا فقط Enter بزن) و Aether همون گیت‌وی خاص رو دوباره تأیید می‌کنه — یه چک سریع تکی، نه یه اسکن کامل — و اگه پاس شد بلافاصله وصل می‌شه. - جواب بده نه، و Aether کش رو نادیده می‌گیره و دقیقاً مثل قبل اسکن معمولی می‌زنه. - اگه گیت‌وی کش‌شده دیگه کار نکنه، Aether خودش می‌گه و خودکار به یه اسکن کامل برمی‌گرده، پس هیچ‌وقت روی یه نقطهٔ مرده گیر نمی‌کنی. برای رد شدن کامل از سؤال (برای سرویس‌ها و اسکریپت‌ها به‌دردبخوره)، `AETHER_QUICK_RECONNECT=1` رو تنظیم کن (یا پرچم `--quick-reconnect`) تا همیشه اول کش رو امتحان کنه، یا `AETHER_QUICK_RECONNECT=0` (یا `--no-quick-reconnect`) تا همیشه از نو اسکن کنه. ## جدول کامل متغیرهای محیطی هر سؤالی که برنامه موقع اجرا می‌پرسه، یه معادل «متغیر محیطی» هم داره. اگه یه متغیر رو از قبل تنظیم کنی، Aether دیگه اون سؤال رو ازت نمی‌پرسه. این کار برای اجرای خودکار و نوشتن اسکریپت خیلی به‌دردبخوره. ### انتخاب‌های کلی - `AETHER_PROTOCOL` — پروتکل: `masque`، `wg`، یا `gool`. - `AETHER_SOCKS` — آدرس گوش‌دادن پراکسی. پیش‌فرض `127.0.0.1:1819`. - `AETHER_NOIZE` — پروفایل استتار (بالاتر توضیح داده شد). - `AETHER_SCAN` — حالت اسکن: `turbo`، `balanced`، `thorough`، `stealth`. - `AETHER_IP` — نسخهٔ IP برای اسکن: IPv4، IPv6، یا هر دو. ### مخصوص MASQUE - `AETHER_MASQUE_HTTP2` (`--h2`, `--http2`) — اگه `1`/`true`/`h2`/`yes`/`on` باشه، از h2 استفاده می‌کنه. وگرنه h3. - `AETHER_MASQUE_H2_PEER` (`--h2-peer`) — بازنویسی دستیِ آدرس مقصد برای حالت h2 (برای کاربرهای پیشرفته). - `AETHER_MASQUE_H2_FRAGMENT` (`--fragment`) — فرگمنت کردن TLS ClientHello روی h2. پیش‌فرض خاموشه. - `AETHER_MASQUE_H2_FRAGMENT_SIZE` (`--fragment-size`) — اندازهٔ هر تکه به بایت، `n` یا `a-b`. پیش‌فرض `16-32`. - `AETHER_MASQUE_H2_FRAGMENT_DELAY` (`--fragment-delay`) — تأخیر بین تکه‌ها به میلی‌ثانیه، `n` یا `a-b`. پیش‌فرض `2-10`. - `AETHER_MASQUE_NO_DATA_CHECK` (`--no-data-check`) — اگه این رو بذاری، فقط `:status 200` کافیه؛ پروب end-to-end دیتاپلین انجام نمی‌شه. - `AETHER_MASQUE_VALIDATE_SECS` (`--validate-secs`) — چند ثانیه صبر کنه تا پروب دیتاپلین موفق بشه قبل از اینکه از یه گیت‌وی صرف‌نظر کنه. پیش‌فرض `10`. - `AETHER_MASQUE_RECONNECT_SECS` (`--reconnect-secs`) — تأخیر قبل از اتصال خودکار دوباره بعد از قطع تونل یا شکست تأیید. پیش‌فرض `2`. ### مخصوص WireGuard و gool - `AETHER_WG_KEEPALIVE` (`--keepalive`) — فاصلهٔ بستهٔ زنده‌نگه‌دار به ثانیه. پیش‌فرض `5`. - `AETHER_WG_NO_DATA_CHECK` (`--no-data-check`) — اگه این رو بذاری، حین اسکن، عبور واقعیِ داده تأیید نمی‌شه (سریع‌تره ولی مطمئن‌تر نیست). - `AETHER_WG_NO_PROFILE_RETRY` (`--no-profile-retry`) — اگه این رو بذاری، در صورت شکست اسکن، با پروفایل‌های نویز دیگه دوباره تلاش نمی‌کنه. ### اتصال سریع (Quick reconnect) - `AETHER_QUICK_RECONNECT` (`--quick-reconnect` / `--no-quick-reconnect`) — بذارش `1` تا همیشه بدون سؤال از آخرین گیت‌وی سالم استفاده کنه، یا `0` تا همیشه بدون سؤال از نو اسکن کنه. اگه تنظیم نکنی، Aether موقع اجرا اگه یه گیت‌وی کش‌شده داشته باشه ازت می‌پرسه. ### مجبور کردن نقطهٔ اتصال و مسیر فایل کانفیگ - `AETHER_PEER` یا `AETHER_WG_PEER` (`--peer`, `--wg-peer`) — اگه بخوای خودت یه آدرس ثابت بدی و اسکن رو دور بزنی. - `AETHER_CONFIG` (`--config`) — مسیر فایل کانفیگ پایه. پیش‌فرض `aether.toml`. - `AETHER_WG_CONFIG` و `AETHER_MASQUE_CONFIG` (`--wg-config`, `--masque-config`) — مسیر فایل کانفیگ مخصوص هر پروتکل. - `AETHER_TLS_GROUPS` (`--tls-groups`) — بازنویسی گروه‌های TLS key-share که توی دست‌دادن اعلام می‌شن. پیش‌فرض شبیه کروم هست (`P-256:X25519:P-384`). ## مثال‌های عملی ### ساده‌ترین حالت فقط اجراش کن و به سؤال‌ها با عدد جواب بده: ``` ./target/release/aether ``` ### MASQUE روی h2، برای اینترنتی که UDP رو بسته ``` AETHER_PROTOCOL=masque AETHER_MASQUE_HTTP2=1 AETHER_NOIZE=firewall ./target/release/aether ``` ### WireGuard سریع، برای اینترنت سخت‌گیر ``` AETHER_PROTOCOL=wg AETHER_NOIZE=aggressive AETHER_SCAN=thorough ./target/release/aether ``` ### gool با پورت دلخواه خودت ``` AETHER_PROTOCOL=gool AETHER_SOCKS=127.0.0.1:1080 ./target/release/aether ``` ### MASQUE روی h2 با فرگمنت کردن ClientHello، برای شبکه‌ای که دقیقاً دست‌دادن h2 رو می‌بندد ``` ./target/release/aether --masque --h2 --fragment --noize firewall ``` ### همیشه سریع وصل شو بدون اینکه چیزی بپرسه (برای سرویس/اسکریپت) ``` AETHER_QUICK_RECONNECT=1 ./target/release/aether --masque ``` ### اجرا با داکر (Docker) شما می‌توانید ایمیج رسمی Aether را مستقیماً از GitHub Container Registry (GHCR) اجرا کنید که یه محیط ایزوله بهت می‌ده و نیازی به نصب Rust یا ابزارهای C++ روی سیستم خودت نداری. ```bash docker run -it -p 1819:1819 \ -e AETHER_PROTOCOL=masque \ -e AETHER_SCAN=balanced \ ghcr.io/cluvexstudio/aether:latest ``` *(پرچم `-it` برای وقتی که متغیرهای محیطی رو از قبل ندادی و نیاز به پاسخ دادن به سؤالات تعاملی داری، ضروریه.)* در صورتی که ترجیح می‌دهید ایمیج را خودتان بیلد کنید: ```bash docker build -t aether . docker run -it -p 1819:1819 aether ``` ## تست اینکه واقعاً کار می‌کنه یا نه همین که برنامه گفت پراکسی در حال گوش‌دادنه، این دستور رو بزن: ``` curl -x socks5h://127.0.0.1:1819 https://www.cloudflare.com/cdn-cgi/trace ``` اگه جواب گرفتی و توش چیزی شبیه `warp=on` یا مشخصات اتصال دیدی، یعنی تونل سرپاست و ترافیکت از داخلش رد می‌شه. ## وقتی چیزی کار نمی‌کنه - **اصلاً وصل نمی‌شه:** اول پروتکل رو عوض کن. اگه MASQUE روی h3 وصل نشد، h2 رو روشن کن. اگه دقیقاً دست‌دادن h2 مسدود می‌شه، `--fragment` رو امتحان کن. اگه هیچ‌کدوم روی MASQUE کار نکرد، WireGuard یا gool رو امتحان کن. - **اسکنر یه گیت‌وی پیدا می‌کنه ولی تونل هیچ‌وقت واقعاً داده رد نمی‌کنه ("وصل می‌شه" ولی چیزی لود نمی‌شه):** این دقیقاً همون چیزیه که تأیید دیتاپلین الان می‌گیرد — یه گیت‌وی که به دست‌دادن جواب می‌ده ولی داده رو بی‌صدا drop می‌کنه. Aether این گیت‌وی رو رد می‌کنه و خودکار به اسکن ادامه می‌ده. اگه همیشه این اتفاق می‌افته و ترجیح می‌دی به‌هرحال وصل شی، می‌تونی با `--no-data-check` این چک رو خاموش کنی، ولی همون رفتار قطع بی‌صدای قبلی رو دوباره می‌گیری. - **وصل می‌شه ولی مدام قطع می‌شه:** پروفایل استتار (نویز) رو یه پله سنگین‌ترش کن. - **اسکن خیلی طول می‌کشه:** حالت اسکن رو روی turbo بذار. - **کنده:** اگه روی gool هستی، برو روی WireGuard تک‌لایه؛ و اگه روی h2 هستی و فکر می‌کنی اینترنتت UDP رو باز گذاشته، h3 رو امتحان کن. - **هر بار که روی همون شبکه دوباره وصل می‌شی، معطل یه اسکن کامل می‌شی:** به سؤال "اتصال به آخرین گیت‌وی سالم" جواب آره بده، یا `AETHER_QUICK_RECONNECT=1` رو همیشگی کن. ## جمع‌بندی یک‌خطی از MASQUE با پروفایل پیش‌فرض شروع کن. اگه UDP بسته بود، h2 رو روشن کن (و اگه خود h2 هم مسدود شد، ClientHello رو فرگمنت کن). اگه بازم سخت‌گیر بود، پروفایل استتار رو سنگین‌تر کن یا برو سراغ WireGuard و gool. بقیه‌ش (پیدا کردن آدرس، رد کردن گیت‌وی‌هایی که واقعاً داده رد نمی‌کنن، اتصال مجدد خودکار، و اتصال سریع با آخرین گیت‌وی سالم) رو خود Aether حواسش هست.