پروتکلهای پشتیبانیشده¶
MoaV بیش از ۱۶ پروتکل عبور از فیلترینگ و مسیر جایگزین را راهاندازی میکند، به همراه امکان اهدای اختیاری پهنای باند به پروژههای Psiphon، Tor و MahsaNet. هر یک از این روشها از نظر تکنیکهای ضدشناسایی (Anti-detection)، سرعت و نیازمندیهای شبکهای ویژگیهای متفاوتی دارند. همین تنوع ساختاری باعث میشود که در صورت مسدودسازی یک پروتکل، سایر مسیرها همچنان فعال و در دسترس باقی بمانند.
نمای کلی پروتکلها¶
| پروتکل | پورت | پنهانکاری | سرعت | نیاز به دامنه |
|---|---|---|---|---|
| Reality (VLESS) | 443/tcp | خیلی بالا | بالا | خیر |
| Trojan | 8443/tcp | بالا | بالا | بله |
| AnyTLS | 8445/tcp | خیلی بالا | بالا | بله |
| Hysteria2 | 443/udp | بالا | خیلی بالا | بله |
| Shadowsocks-2022 | 8388/tcp+udp | بالا | خیلی بالا | خیر |
| CDN (VLESS+WS) | 443 via CDN | خیلی بالا | متوسط | Cloudflare: بله · CloudFront: خیر |
| TrustTunnel | 4443/tcp+udp | خیلی بالا | بالا | بله |
| WireGuard | 51820/udp | متوسط | خیلی بالا | خیر |
| AmneziaWG | 51821/udp | خیلی بالا | بالا | خیر |
| WireGuard (wstunnel) | 8080/tcp | بالا | بالا | خیر |
| Telegram MTProxy | 993/tcp | بالا | متوسط | خیر |
| dnstt | 53/udp | متوسط | پایین | بله |
| Slipstream | 53/udp | متوسط | پایین تا متوسط | بله |
| MasterDNS | 53/udp | متوسط | متوسط | بله |
| GooseRelay | 8444/tcp | خیلی بالا | پایین تا متوسط | خیر |
| Psiphon Conduit | dynamic | بالا | متوسط | خیر |
| XHTTP (VLESS+XHTTP+Reality) | 2096/tcp | خیلی بالا | بالا | خیر |
| XDNS (VLESS+mKCP+DNS) | 53/udp | متوسط | پایین | بله |
| Tor Snowflake | dynamic | بالا | پایین | خیر |
| MahsaNet | — | — | — | خیر |
جزئیات پروتکلها¶
Reality (VLESS)¶
پروتکل اصلی: ترکیب VLESS به همراه Reality باعث میشود ترافیک پروکسی شما دقیقاً شبیه به یک اتصال TLS واقعی به یک وبسایت معتبر (مانند dl.google.com) به نظر برسد. در این روش، سرور گواهی TLS واقعی همان سایت هدف را ارائه میدهد و حتی در برابر بررسی و کاوش فعال (Active Probing) نیز عملکرد موفقی دارد.
- پورت:
443/tcp - موتور: sing-box
- کلاینتها: Streisand, Hiddify, v2rayNG, v2rayN, NekoBox
Trojan¶
پروکسی TLS با رمز عبور. ترافیک آن دقیقاً شبیه به HTTPS معمولی به نظر میرسد و از گواهی TLS واقعی دامنه شما (که توسط Let's Encrypt صادر شده) استفاده میکند.
- پورت:
8443/tcp - موتور: sing-box
- کلاینتها: Streisand, Hiddify, v2rayNG, v2rayN, Shadowrocket
AnyTLS¶
پروکسی TLS با رمز عبور برای مقاومت در برابر ردپای (Fingerprint) TLS-in-TLS طراحی شده است. این پروتکل با تغییر اندازه رکوردها و اعمال پدینگ (Padding)، الگوی TLS-در-TLS را که سیستمهای DPI برای شناسایی پروکسیهای تونلشده روی TLS به کار میبرند خنثی کرده و پنهانکاری (Stealth) بالایی در برابر این روشهای فیلترینگ ارائه میدهد. این ابزار از همان موتور sing-box، گواهی TLS مربوط به Trojan و دامنه سرور شما استفاده میکند.
- پورت:
8445/tcp - موتور: sing-box (1.13.x)
- کلاینتها: Hiddify, sing-box (SFA/SFI), NekoBox/NekoRay, Mihomo Party, Shadowrocket 2.2.65+
- نکته: اختیاری است — با
ENABLE_ANYTLS=trueروشن میشود. دامنه (TLS) لازم است. پشتیبانی کلاینت از VLESS/Trojan محدودتر است؛ کلاینتهای قدیمی یا (v2rayNG, Streisand, V2Box, Clash Verge) Clash-only از AnyTLS پشتیبانی نمیکنند.
Hysteria2¶
پروتکل مبتنی بر QUIC برای دستیابی به کارایی و توان عملیاتی بالا در شبکههای ناپایدار بهینهسازی شده است. این پروتکل از قابلیت داخلی مبهمسازی ترافیک (Obfuscation) استفاده میکند تا از شناسایی و مسدودسازی ترافیک QUIC توسط سیستمهای فیلترینگ جلوگیری کند.
- پورت:
443/udp - موتور: sing-box
- کلاینتها: Streisand, Hiddify, v2rayNG, v2rayN
- نکته: به UDP نیاز دارد. در برخی شبکههای دارای فیلترینگ که UDP غیرمرتبط با (non-DNS UDP) DNS را بهطور کامل مسدود میکنند، قابل استفاده نیست.
کنترل ازدحام (Congestion Control): پارامترهای up_mbps / down_mbps تنظیم نشدهاند و مقدار ignore_client_bandwidth: true فعال است تا هر دو طرف روی BBR باقی بمانند و پهنای باند اعلامشده از سوی کلاینت باعث سوئیچ الگوریتم لینک به Brutal نشود (اتفاقی که میتواند یک VPS با رم پایین را اشباع کند). این BBR مربوط به لایهٔ QUIC در خود Hysteria2 داخل sing-box است — هیچ ارتباطی با ماژول کرنل tcp_bbr ندارد و به سیستمعامل میزبان وابسته نیست.
Shadowsocks-2022¶
AEAD-2022 Shadowsocks (2022-blake3-aes-128-gcm), نسل مدرن Shadowsocks با کلیدهای مجزا برای هر کاربر و مقاومت داخلی در برابر کاوش فعال (Active Probing) و حملات بازپخش یا تکرار (Replay Attacks). این پروتکل نیازی به دامنه و گواهی TLS ندارد؛ بنابراین در حالت بدون دامنه بهخوبی کار میکند و زمانی که استفاده از پروتکلهای مبتنی بر گواهی ممکن یا مناسب نیست، جایگزین بسیار خوبی است. همچنین از نظر پروتکل، سازگاری کاملی با اپلیکیشن Outline دارد.
- پورت:
8388/tcp+8388/udp - موتور: sing-box
- کلاینتها: Outline (iOS/Android/desktop), NekoBox/NekoRay, Hiddify, Streisand, sing-box — با URI استاندارد
ss:// - نکته: بهصورت پیشفرض فعال است (
ENABLE_SS=true). اگر پورت 8388 توسط ISP شما از طریق شناسایی الگوی ترافیک (Fingerprinting) شناسایی شود، مقدارPORT_SSرا در فایل.envبه پورتی کمتر قابل شناسایی تغییر دهید و سپس دستورmoav restart sing-boxرا اجرا کنید.
CDN (VLESS+WS)¶
ترافیک VLESS را از مسیر CDN کلادفلر، روی WebSocket، عبور میدهد. وقتی IP سرور مسدود باشد، ترافیک از Cloudflare عبور می کند؛ مسدودسازی بر اساس IP خیلی سختتر میشود، چون کلاینتها از زیرساخت CDN وصل میشوند.
اختیاری: مقدار پیشفرض ENABLE_CDN=false است، زیرا این لینک تنها زمانی کار میکند که زیردامنه (Subdomain) از طریق CDN پروکسی شده و به پورت CDN بازنویسی شده باشد. پس از راهاندازی حالت CDN، این گزینه را فعال کنید.
- پورت:
443 (Cloudflare)→2082(origin) - موتور: sing-box
- کلاینتها: Streisand, Hiddify, v2rayNG, v2rayN
- نیازمندی: یک دامنه پروکسیشده توسط Cloudflare (Cloudflare-proxied) که کنترل آن در اختیار شما باشد؛ AWS CloudFront میتواند از نام میزبان توزیع (Distribution Hostname) استفاده کند و نیازی به دامنه اختصاصی ندارد.
TrustTunnel¶
پروتکل VPN مدرن که شبیه ترافیک HTTPS معمولی است. هم HTTP/2 (TCP) را پشتیبانی میکند هم HTTP/3 (QUIC/UDP).
- پورت:
4443/tcp+4443/udp - موتور: TrustTunnel (سرور) / TrustTunnelClient (کلاینت)
- کلاینتها: اپ TrustTunnel (iOS, Android, macOS, Windows, Linux)
WireGuard¶
VPN سریع در سطح کرنل. ساده، ارزیابیشده از نظر امنیتی و با پشتیبانی گسترده. این پروتکل از اتصال مستقیم UDP استفاده میکند.
- پورت:
51820/udp - موتور: sing-box + wstunnel
- کلاینتها: اپ WireGuard (همهٔ پلتفرمها)
- نکته: به راحتی بوسیله DPI قابل تشخیص است. در شبکههای فیلترشده از AmneziaWG یا نسخهٔ wstunnel استفاده کنید.
AmneziaWG¶
WireGuard مبهمشده (Obfuscated WireGuard) که برای مقابله با الگوهای رایج شناسایی توسط DPI طراحی شده است. با افزودن بستههای زائد، تغییر زمانبندی Handshake و دستکاری فیلدهای Header، از شناسایی جلوگیری میکند.
- پورت:
51821/udp - موتور: amneziawg-tools
- کلاینتها: AmneziaVPN (iOS, Android, macOS, Windows, Linux)
WireGuard (wstunnel)¶
-
WireGuard از طریق WebSocket (TCP) تونل میشود: در صورت مسدودسازی کامل UDP قابل استفاده است. اگر
DOMAINتنظیم شده باشد، تونل از طریقwss://(TLS) و با گواهی Let's Encrypt سرور برقرار میشود تا فرآیند ارتقای WebSocket (WebSocket Upgrade) مشابه یک اتصال معمولی HTTPS به نظر برسد. در حالت بدون دامنه، فقط ازws://استفاده میشود. همچنین برای هر نصب، یک رمز عبور اختصاصی مسیر ارتقای HTTP الزامی است تا اسکنرها بدون داشتن آن نتوانند فرآیند ارتقای WebSocket را تکمیل کنند. دستور دقیق اتصال کلاینت — شامل طرح صحیح **wss:///ws://**و پیشوند مسیر — در فایلwireguard-instructions.txtهر بسته کاربر قرار دارد. -
پورت:
8080/tcp - موتور: wstunnel دور کانتینر WireGuard
- کلاینتها: اپ WireGuard + باینری wstunnel
- نکته: پس از ارتقای یک نصب موجود، ایمیج را مجدداً Build کنید (
moav build wstunnel) و فرآیند Bootstrap را دوباره اجرا کنید تا Secret path تولید شده وwss://فعال شود؛ Bundleهای قدیمی تا زمانی که مجدداً صادر نشوند، همچنان از طریقws://کار میکنند.
Telegram MTProxy¶
پروکسی مخصوص تلگرام با Fake-TLS V2. اتصال TLS واقعی را شبیهسازی میکند، از جمله تقلید گواهی و شبیهسازی زمانبندی. وقتی تلگرام بسته است، دسترسی مستقیم میدهد.
- پورت:
993/tcp(پورت IMAPS برای پنهانکاری) - موتور: telemt
- کلاینتها: اپ تلگرام (تنظیمات پروکسی داخلی)
تنظیمات ضد DPI
telemt بیش از ۱۷ تنظیم قابلپیکربندی برای شبکههای خصمانه دارد. همه در .env قابل تنظیماند:
استتار ترافیک (ضد DPI):
| تنظیم | پیشفرض | کاربرد |
|---|---|---|
TELEMT_KEEPALIVE_RANDOM |
true |
تصادفیکردن payload keepalive تا تطبیق الگوی DPI بشکند |
TELEMT_KEEPALIVE_JITTER |
4 |
تصادفیسازی زمانبندی Keepalive به میزان ±N ثانیه |
TELEMT_KEEPALIVE_INTERVAL |
20 |
فاصلهٔ پایهٔ keepalive به ثانیه |
TELEMT_WARMUP_JITTER |
200 |
تصادفیکردن زمان برقراری اتصال (میلیثانیه) |
تابآوری استخر اتصال:
| تنظیم | پیشفرض | کاربرد |
|---|---|---|
TELEMT_POOL_SIZE |
12 |
تعداد اتصالهای پایدار به DCهای تلگرام |
TELEMT_REINIT_SECS |
600 |
(از شناسایی الگوی اتصالهای طولانی جلوگیری میکند) |
TELEMT_HARDSWAP |
true |
ساخت استخر جدید قبل از خراب کردن استخر قدیمی (چرخش بدون قطعی) |
TELEMT_HARDSWAP_DELAY_MIN |
500 |
کمینهٔ تأخیر بین اتصالهای جدید هنگام تعویض (میلیثانیه) |
TELEMT_HARDSWAP_DELAY_MAX |
1200 |
بیشینهٔ تأخیر بین اتصالهای جدید هنگام تعویض (میلیثانیه) |
وصلشدن سریع دوباره:
| تنظیم | پیشفرض | کاربرد |
|---|---|---|
TELEMT_FAST_RETRIES |
10 |
تلاش های مجدد سریع پیش از backoff نمایی |
TELEMT_BACKOFF_BASE |
300 |
فاصلهٔ زمانی backoff اولیه (میلیثانیه) |
TELEMT_BACKOFF_CAP |
10000 |
حداکثر فاصله زمانی Backoff (میلیثانیه) |
پایداری تنظیمات:
| تنظیم | پیشفرض | کاربرد |
|---|---|---|
TELEMT_STABLE_SNAPSHOTS |
3 |
N اسنپشات پیاپی و یکسان پیش از اعمال تغییرات لازم است |
TELEMT_APPLY_COOLDOWN |
120 |
حداقل فاصله زمانی بین تغییرات تنظیمات |
برای فیلترینگ شدید (مثلاً ایران هنگام قطعی): TELEMT_POOL_SIZE را به ۱۶ تا ۲۰ برسانید، TELEMT_REINIT_SECS را به ۳۰۰ کم کنید، و TELEMT_FAST_RETRIES را به ۲۰ بالا ببرید.
مستندات کامل تنظیم: telemt TUNING.en.md | مستندات API
GooseRelay¶
تونل SOCKS5 از طریق یک وب اپلیکیشن Google Apps Script که کاربر آن را در حساب گوگل خودش Deploy میکند و درخواستها را به سرور خروجی VPS ارسال میکند. در سطح شبکه، کلاینت فقط در ظاهر یک درخواست HTTPS به google.com ارسال میکند؛ Payload بهصورت AES-256-GCM و بهصورت End-to-End بین Endpointهای GooseRelay رمزنگاری میشود، بنابراین Apps Script فقط Ciphertext را Relay میکند، هرچند گوگل همچنان میتواند Metadata مربوط به درخواست را مشاهده کند. این همان کامپوننت GooseRelay است که در MahsaNG v16 قرار دارد. بسیار مخفیکارانه است و شبیه ترافیک گوگل به نظر میرسد، اما توان عملیاتی به دلیل محدودیت حدود ۲۰ هزار فراخوانی در روز برای هر حساب در Apps Script محدود میشود.
- پورت:
${PORT_GOOSE}/tcp(بهصورت پیشفرض 8444 روی Host → 8443 در Container؛ پورت 8443 روی Host متعلق به Trojan است) - موتور: GooseRelayVPN (Go)، سرور ساختهشده از Source
- کلاینتها: MahsaNG v16+ یا کلاینت مستقل GooseRelay بههمراه یک Forwarder مبتنی بر Apps Script که توسط کاربر Deploy شده باشد
- رمزنگاری: AES-256-GCM، با
tunnel_keyمشترک 64-hex (در فایلgooserelay-instructions.txtهر کاربر) - نیازمندی: به دامنه نیاز ندارد.
PORT_GOOSEباید از شبکه Google قابل دسترسی باشد. کاربر بایدRELAY_URLS = ['http://SERVER_IP:PORT_GOOSE/tunnel']را در Apps Script خود تنظیم کند. - نکته: بهصورت اختیاری فعال میشود. برای فعالکردن آن،
ENABLE_GOOSERELAY=trueرا در.envقرار دهید. ترافیک خروجی از طریق sing-box مسیریابی میشود. اپلیکیشنهای Real-time مانند Telegram/X سهمیه Apps Script را سریع مصرف میکنند؛ برای افزایش ظرفیت، Deploymentهای بیشتری را تحت حسابهای مختلف Google ایجاد کنید.
XHTTP (VLESS+XHTTP+Reality)¶
آزمایشی: VLESS روی لایه انتقال (Transport) XHTTP با استتار TLS مبتنی بر Reality (ارائهشده توسط Xray-core). این پروتکل از لایه انتقال (Transport) XHTTP (که قبلاً splithttp نام داشت) برای ارسال چندگانه (Multiplexed) درخواستهای HTTP استفاده میکند تا ترافیک مشابه وبگردی عادی به نظر برسد. همچنین Reality امکان استفاده از TLS را بدون نیاز به دامنه اختصاصی فراهم میسازد.
- پورت:
2096/tcp - موتور: Xray-core
- کلاینتها: V2rayNG، Hiddify، Streisand، V2Box، V2rayN، V2rayU، NekoBox
- نکته: از Xray-core استفاده میکند که از sing-box جداست. با قرار دادن
ENABLE_XHTTP=falseدر.envآن را غیرفعال کنید.
Psiphon Conduit¶
اهدای پهنای باند به شبکه Psiphon. کاربران Psiphon در سراسر جهان از طریق سرور شما مسیریابی میشوند. این یک پروتکل برای اتصال شما نیست، بلکه روشی برای کمک به دیگران جهت عبور از فیلترینگ است.
- موتور: Psiphon Conduit
- کلاینتها: اپلیکیشن Psiphon برای iOS، Android و Windows
Conduit شما چگونه به کاربران ایران کمک میکند¶
دو روش وجود دارد که Conduit در حال اجرای شما به کاربران دسترسی پیدا میکند:
-
استخر عمومی(Public Pool) — خودکار، نیازی به اشتراکگذاری نیست. به محض اجرای Conduit، پهنای باند را به شبکه Psiphon اهدا میکند. کاربران اپلیکیشن Psiphon — از جمله در ایران — بهصورت خودکار از طریق سرور شما مسیریابی میشوند. آنها به لینک، دعوتنامه یا هیچ تنظیماتی نیاز ندارند. این روش اصلی کمک Conduit است و هیچ اقدامی از سمت کاربر لازم ندارد.
-
جفتسازی شخصی(Personal Pairing) — اشتراکگذاری یک مسیر خصوصی با افراد خاص. Conduit مربوط به Psiphon به شما امکان میدهد به دوستان/خانواده یک مسیر خصوصی و اولویتدار از طریق ایستگاه خود بدهید. اپلیکیشن Psiphon برای این کار یک فیلد «pairing URL» دارد. برای راهاندازی: اپلیکیشن Ryve مربوط به Psiphon (مدیر Conduit) را نصب کنید، ایستگاه خود را با لینک claim که MoaV تولید میکند وارد کنید، سپس در Ryve گزینه Personal Pairing را فعال کرده و یک لینک جفتسازی تولید کنید تا برای افراد در ایران ارسال شود.
moav conduit link¶
moav conduit link # Claim link + QR + راهنمای مرحلهبهمرحله اشتراکگذاری
moav conduit status # وضعیت اجرا + کلاینتهای متصل / پهنای باند
این دستور Ryve claim deep link (network.ryve.app://…claim=…) و کد QR آن را بههمراه راهنمای اشتراکگذاری بالا نمایش میدهد.
⚠ نکته امنیتی: لینک یا کد QR مربوط به claim، حاوی کلید خصوصی این Conduit است؛ بنابراین این لینک صرفاً برای افزودن (import) ایستگاه به اپلیکیشن Ryve روی دستگاه شخصی خودتان استفاده میشود. با این لینک مانند یک رمز عبور رفتار کرده و از انتشار عمومی آن جداً خودداری کنید (زیرا هر کسی به آن دسترسی داشته باشد، کنترل ایستگاه شما را بهدست خواهد گرفت). لینکی که باید بهصورت عمومی و امن در اختیار بقیه بگذارید، همان لینک «Personal Pairing» است که داخل Ryve تولید میشود، نه لینک claim. طبق تغییرات ثبتشده در Psiphon-Inc/conduit#205، خروجی گرفتن (Export) از pairing-URL تنها از طریق رابط کاربری اپلیکیشن Conduit/Ryve امکانپذیر است؛ بههمین دلیل MoaV صرفاً لینک claim و مراحل کار را به شما نشان میدهد و خودش بهصورت مستقیم pairing URL تولید نمیکند. (همچنین دستور
moav donate infoبهعنوان یک نام مستعار برایmoav conduit linkعمل میکند.)
Tor Snowflake¶
اهدای پهنای باند به شبکه مانند Conduit، هدف این قابلیت کمک به دیگران است؛ به این صورت که بهعنوان یک Snowflake Proxy عمل کرده و به کاربران Tor در مناطق تحت فیلترینگ کمک میکند تا به اینترنت آزاد متصل شوند.
- موتور: Snowflake
- کلاینتها: Tor Browser با Snowflake Bridge
MahsaNet¶
اهدای کانفیگ به MahsaServer.com, پلتفرمی غیرمتمرکز برای اشتراکگذاری کانفیگهای VPN جهت استفاده در اپلیکیشن Mahsa VPN. با بیش از ۲ میلیون کاربر در ایران، Mahsa VPN به کانفیگهای اهدایی از سرورهای سراسر جهان متصل میشود. برخلاف Conduit و Snowflake که پهنای باند را اهدا میکنند، MahsaNet لینکهای کانفیگ VPN سرور شما را اهدا میکند تا کاربران Mahsa VPN مستقیماً به سرور شما متصل شوند.
- پروتکلهای پشتیبانیشده: Reality (VLESS)، Hysteria2، Trojan، CDN (VLESS+WS)
- کلاینتها: اپلیکیشن Mahsa VPN برای Android و iOS
- راهاندازی: در MahsaServer.com ثبتنام کنید، API Key دریافت کنید، سپس دستور
moav donateرا اجرا کنید - داشبورد: اهدا، مشاهده و مدیریت کانفیگها از طریق Admin Dashboard.
DNS Tunnels¶
وقتی یک شبکه تقریباً تمامی پروتکلها را مسدود یا محدود میکند، پروتکل DNS معمولاً همچنان برای Resolve کردن دامنهها فعال است؛ زیرا مسدودسازی کامل آن میتواند عملکرد بخش بزرگی از اینترنت را مختل کند. تونلهای DNS ترافیک را در قالب Queryهای DNS کدگذاری میکنند و بنابراین زمانی که تمام ترافیک عادی مسدود شده باشد، اما سامانه نامگشا (DNS Resolver) همچنان پاسخ دهد، میتوانند قابل استفاده باقی بمانند.
این روش بسیار کند است. آن را صرفاً بهعنوان یک گزینه اضطراری برای زنده نگهداشتن ابزارهای پیامرسان و Chat در نظر بگیرید، نه یک پروتکل ارتباطی برای استفاده روزمره.
نحوه کار¶
MoaV چهار تونل DNS را بهصورت همزمان روی همان پورت عمومی ۵۳ اجرا میکند. یک سرویس سبک به زبان Go با نام dns-router تنها سرویسی است که روی این پورت Bind میشود؛ این سرویس پیشوند (Prefix) مربوط به زیردامنه (Subdomain) هر Query را بررسی کرده و آن را به کانتینر تونل مربوطه روی یک پورت داخلی ارسال (Forward) میکند.
Public 53/udp
│
┌──────▼──────┐
│ dns-router │ ← روی پورت 53 listener تنها
└──────┬──────┘
│ (Subdomain Prefix)مسیریابی بر اساس پیشوند زیردامنه
t.* ─────► dnstt (KCP + Noise)
s.* ─────► slipstream (QUIC-over-DNS)
m.* ─────► masterdns (ARQ, MahsaNG-native)
x.* ─────► xray (XDNS via FinalMask)
│
▼
sing-box ──► internet
از آنجا که این تونلها بهجای پورت بر اساس زیردامنه (Subdomain) از یکدیگر تفکیک میشوند، نیازی به انتخاب یکی از آنها نیست. کاربر میتواند با هر تونلی که کلاینتش پشتیبانی میکند متصل شود و هر چهار تونل قادرند بهصورت همزمان ترافیک را سرویس دهی کنند.
چیزی که MoaV برای شما تنظیم میکند¶
هر تونل به یک واگذاری دامنه (NS Delegation) نیاز دارد که زیردامنه (Subdomain) آن را به سرور شما ارجاع دهد، به همراه یک A Record برای خودِ Nameserver:
dns.yourdomain.com A YOUR_SERVER_IP # Nameserver
t.yourdomain.com NS dns.yourdomain.com # dnstt
s.yourdomain.com NS dns.yourdomain.com # Slipstream
m.yourdomain.com NS dns.yourdomain.com # MasterDNS
x.yourdomain.com NS dns.yourdomain.com # XDNS
دستور moav doctor dns رکوردهای موردنیاز پیکربندی (Configuration) شما را دقیقاً در فایل outputs/dns-records.txt مینویسد تا برای وارد کردن (Import) به Cloudflare آماده باشند. راهنمای کامل: DNS Configuration.
هر چهار تونل بهصورت پیشفرض فعال هستند. میتوانید آنها را بهصورت جداگانه با ENABLE_DNSTT / ENABLE_SLIPSTREAM / ENABLE_MASTERDNS / ENABLE_XDNS فعال یا غیرفعال کنید، یا ترکیب موردنظر را با یک دستور تنظیم کنید:
moav switch-dns # نمایش وضعیت فعلی
moav switch-dns dnstt+slipstream+masterdns+xdns # هر چهار مورد
moav switch-dns dnstt+slipstream # جفت کلاسیک
moav switch-dns off # بدون تونل DNS
اگر یک کانتینر (Container) مربوط به یک تونل غیرفعال باشد، خاموش میماند و سرویس dns-router نیز پورت پشتیبانی (Backend) برای ارسال (Forward) ترافیک به آن نخواهد داشت. همچنین پورت 53/udp باید بدون مانع به سرور برسد؛ توجه داشته باشید که برخی از ارائهدهندگان خدمات اینترنتی (ISP) این پورت را روی خطوط خانگی (Residential) بهطور کامل مسدود میکنند.
کدامیک را باید استفاده کنم؟¶
| تونل | Subdomain | سرعت نسبت به dnstt | مقاومت در برابر افت بسته | بهترین کاربرد |
|---|---|---|---|---|
| dnstt | t |
1× (مبنای مقایسه) | کم | بیشترین سازگاری با کلاینتها-- امکان استفاده از کلاینت های مستقل روی بیش از 25 پلتفرم |
| Slipstream | s |
1.5–5× | متوسط | استفاده عمومی سریعتر-- در شبکههایی که کلاینت Slipstream در دسترس است |
| MasterDNS | m |
تا 9× | بالا (ARQ + تکرار بسته + چند Resolver) | خاموشیهای شدید-- بهصورت بومی در MahsaNG v16 |
| XDNS | x |
~1× | کم | مناسب برای کلاینتهای FinalMask (Happ, Xray CLI) ؛احراز هویت برای جلوگیری از استفاده غیرمجاز |
پاسخ کوتاه: در ایران هنگام محدودسازی شدید یا قطعی اینترنت، MasterDNS قویترین گزینه است و مستقیماً از اپلیکیشن MahsaNG کار میکند. در کنار آن dnstt را هم ارائه کنید، چون کلاینت آن تقریباً روی همهجا اجرا میشود.
Resolver سمت کلاینت کلیدیتر از خودِ تونل است
هر تونل DNS به یک Resolver عمومی (Public Resolver) وابسته است که کلاینت همچنان بتواند به آن دسترسی داشته باشد. آدرسهای معروف مانند 1.1.1.1 و 8.8.8.8 دقیقاً در موقعیتهایی که به تونل نیاز دارید، معمولاً با افت سرعت (Throttle) یا انسداد کامل (Null-route) مواجه میشوند.
ابزار XDNS ترافیک را بهصورت چرخشی (Round-robin) بین XDNS_RESOLVERS توزیع میکند؛ ابزارهای dnstt و Slipstream نیز یک Resolver را بهصورت پارامتر (Flag) از سمت کلاینت دریافت میکنند. ابزارهای findns و dns-mns امکان اسکن Resolverهایی را که هنوز در یک شبکه مشخص کار میکنند فراهم میکنند. برای جزئیات بیشتر به بخش Resolverهای قابلدسترسی مراجعه کنید.
Resolverهای DNS قابلدسترسی (Reachable DNS Resolvers)¶
عملکرد هر تونل DNS کاملاً وابسته به Resolverی است که کلاینت میتواند به آن دسترسی داشته باشد. هنگام اختلال یا خاموشی شبکه (Shutdown)، Resolverهای شناختهشده (1.1.1.1، 8.8.8.8، 9.9.9.9) معمولاً دچار افت سرعت (Throttle)، دستکاری ترافیک (Hijack) یا انسداد کامل (Null-route) میشوند؛ در نتیجه تونلی که دیروز بهخوبی کار میکرد، ممکن است امروز از کار افتاده به نظر برسد.
دو اسکنر زیر میتوانند Resolverهایی را که همچنان روی یک شبکه پاسخگو هستند پیدا کنند:
- findns: یک محدوده آدرس را بررسی کرده و Resolverهایی را که پاسخ صحیح میدهند گزارش میکند.
- dns-mns: ایدهای مشابه دارد و بهصورت مستقل نگهداری میشود.
آدرس Resolverهای فعال را در اختیار کلاینت قرار دهید: متغیر XDNS_RESOLVERS یک لیست مجزا با کاما (CSV) را میپذیرد که XDNS در طول یک Session از mKCP، ترافیک را بهصورت چرخشی (Round-robin) بین آنها توزیع میکند. کلاینتهای dnstt و Slipstream نیز هر کدام یک Resolver را از طریق آرگومان ورودی (Flag) دریافت میکنند. توصیه میشود بهجای یک مورد، دو یا سه Resolver شناختهشده و قابلدسترسی را در اختیار کاربران قرار دهید.
dnstt¶
TCP Stream را با استفاده از KCP + Noise درون Queryهای DNS کدگذاری میکند. مسدود کردن آن بدون ایجاد اختلال در خود DNS بسیار دشوار است؛ این روش کندترین گزینه در میان این چهار مورد محسوب میشود، اما بیشترین قابلیت حمل (Portability) را دارد.
- پورت:
53/udp(زیردامنه (Subdomain)t) · موتور: dnstt - کلاینتها: کلاینت مستقل dnstt روی بیش از 25 پلتفرم
- نیازمندی: داشتن دامنه + واگذاری دامنه (NS Delegation)
Slipstream¶
همین ایده را از طریق پروتکل QUIC پیادهسازی میکند که بازدهی واقعی بیشتری فراهم میسازد؛ معمولاً ۱.۵ تا ۵ برابر سریعتر از dnstt.
- پورت:
53/udp(زیردامنه(Subdomain)s) · موتور: slipstream-rust · باینریهای از پیش ساختهشده - نیازمندی: داشتن دامنه + واگذاری دامنه (NS Delegation)
MasterDNS¶
مقاومترین گزینه در برابر افت بسته (Packet Loss) در میان این چهار مورد: بهرهگیری از ARQ کمهزینه، تکرار بستهها و توزیع بار (Load-balancing) بین Resolverها باعث میشود حتی روی لینکهای دارای محدودیت شدید نیز بهخوبی کار کند. این ابزار همان کامپوننت MasterDNS است که در MahsaNG v16 پیادهسازی شده؛ بنابراین، این اپلیکیشن بدون نیاز به کلاینت مجزا متصل میشود.
- پورت:
53/udp(زیردامنه(Subdomain) برابرMASTERDNS_SUBDOMAIN، پیشفرضm) · موتور: MasterDnsVPN (Go) - کلاینتها: MahsaNG v16+ یا کلاینت مستقل (Linux/Windows/macOS/Termux)
- رمزنگاری: AES-256-GCM (
DATA_ENCRYPTION_METHOD=5)؛ کلید مشترک در Bundle هر کاربر قرار میگیرد. - قابلیت اضافی: متغیر
MASTERDNS_PUBLIC_SUBDOMAINیک نام واگذاری (Delegation Name) متفاوت از نام استفادهشده در داخل منتشر میکند؛ باندلهای (Bundle) تولیدشده نیز از همین نام عمومی استفاده خواهند کرد.
XDNS (VLESS+mKCP+DNS)¶
حالت آزمایشی: از لایه انتقال (Transport) mKCP در Xray-core بههمراه FinalMask استفاده میکند و تنها تونل DNS در این مجموعه است که احراز هویت مجزا برای هر کاربر دارد؛ البته این قابلیت نیازمند کلاینتی است که از FinalMask پشتیبانی کند.
- پورت:
53/udp(زیردامنه(Subdomain)x) · موتور: Xray-core (برای FinalMask از Main ساخته شده است) - کلاینتها: Happ (Beta)، Xray CLI. فعلاً v2rayNG استاندارد را پشتیبانی نمیکند.
- بهترین کاربردها: Telegram و اپلیکیشنهای Chat سبک، نه برای Browsing سریع
تنظیمات XDNS
| تنظیم | پیشفرض | کاربرد |
|---|---|---|
XDNS_MTU |
35 |
اندازه بسته mKCP. مقدار کمتر = سازگاری با Resolverهای بیشتر. 35 = ایمنترین، 67 = بیشترین مقدار پیشنهادی، 130 = بدون محدودیت |
XDNS_SUBDOMAIN |
x |
Subdomain مربوط به Queryهای XDNS (x.yourdomain.com) |
XDNS_RESOLVERS |
1.1.1.1,8.8.8.8 |
لیست CSV از Public DNS Resolverهایی که کلاینت در یک Session واحد mKCP بین آنها Round-robin انجام میدهد (Xray v26.4.13+، PR #5872). Resolverهای قابلدسترسی را ببینید و مقادیر پیشفرض را با Resolverهایی که واقعاً در شبکه شما پاسخ میدهند جایگزین کنید. خالی گذاشتن آن، به حالت تکResolver برمیگردد. |
XDNS_METHOD |
txt |
حالت Record مربوط به FinalMask در Bundleهای کلاینت تولیدشده. txt حالت پیشفرض با بیشترین سازگاری است؛ aaaa (Xray #6123) Throughput بیشتری در هر Query فراهم میکند، اما به Xray Client Core نسخه v26.6.1 یا بالاتر نیاز دارد (Happ / Xray CLI). در سمت سرور نیازی به تغییر نیست. |
| ``` |
MTU به طول نام دامنه وابسته است. دامنه کوتاهتر امکان استفاده از MTU بالاتر را فراهم میکند. مقادیر بالا برای دامنههایی با طول حدود 19 کاراکتر هستند.
برای سانسور شدید: از MTU=35 استفاده کنید و از طریق یک DNS Resolver که واقعاً از داخل شبکه سانسورشده قابلدسترسی است متصل شوید (به بخش بالا مراجعه کنید).
انتخاب پروتکلها¶
برای شبکههای تحت فیلترینگ (ایران، چین، روسیه):
- ابتدا از Reality شروع کنید — مخفیسازی بالایی در برابر تکنیکهای فیلترینگی که هدف قرار داده دارد و یک گزینه اول قدرتمند برای شبکههایی است که فعلاً روی آنها کار میکند.
- حالت CDN (CDN Mode) را اضافه کنید — زمانی کارآمد است که IP سرور شما مسدود شده باشد.
- AmneziaWG را فعال کنید — برای داشتن یک VPN کامل زمانی که ردپای (Fingerprint) پروتکل WireGuard شناسایی میشود.
- تونلهای DNS (DNS Tunnels) را فعال کنید — راهکار نهایی (آخرین گزینه) زمانی که تقریباً همهچیز مسدود شده است.
برای حفظ حریم خصوصی عمومی:
- WireGuard — سریعترین و سادهترین گزینه
- Reality — زمانی که WireGuard مسدود است
برای کمک به دیگران:
- Conduit — اهدای پهنای باند به کاربران Psiphon
- Snowflake — اهدای پهنای باند به کاربران Tor
- MahsaNet — اهدای Configهای VPN به کاربران Mahsa VPN در ایران