پروژه MasterDnsVPN یک پروژهٔ علمی-تحقیقاتی برای انتقال دادههای TCP از طریق درخواستها و پاسخهای DNS است. این پروژه در هدف کلی شبیه پروژههایی مانند DNSTT یا SlipStream است، اما از نظر ساختار و روش پیادهسازی تفاوتهای بنیادین دارد و رویکرد متفاوتی را دنبال میکند. پیادهسازی این سیستم بر پایهٔ سازگاری با انواع شبکهها و رزولورها و نیز توانایی تحمل محدودیتهای شدید طراحی شده است، تا در بدترین شرایط ممکن بالاترین میزان انتقال داده و بیشترین پایداری را فراهم کند.
| ویژگی | SlipStream | DNSTT | MasterDnsVPN |
|---|---|---|---|
| نوع پروتکل | DNS Tunnel پیشرفته | DNS Tunnel کلاسیک | DNS Tunnel / VPN پیشرفته |
| پروتکل انتقال | QUIC | KCP + Noise | پروتکل اختصاصی + ARQ |
| سربار هدرهای انتقالی | 🟠 ~24B | 🔴 ~59B | 🟢 ~5–7B |
≈88% کمتر از DNSTT
≈71% کمتر از SlipStream | | نوع رمزنگاری | TLS 1.3 (در QUIC) | Noise (Curve25519) | AES / ChaCha20 / XOR (در صورت استفاده از XOR: امنیت نسبی ولی بدون سربار اضافی) | | معماری | یکپارچه (QUIC همهچیز را پوشش میدهد) | چندلایه (KCP + SMUX + Noise) | 🟢 طراحی اختصاصی سبک، بهینه برای DNS | | سرعت | 🟡 بالا (تا ~5× سریعتر از DNSTT) | 🔴 متوسط | 🟢 سریعتر از بقیه
تا ~9× سریعتر از DNSTT
تا ~3.6× سریعتر از SlipStream | | پایداری در Packet Loss | 🟡 خوب | 🟠 متوسط | 🟢 بسیار بالا (Multipath + ARQ) | | استفاده از چند DNS resolver | بله (multipath) | ❌ | بله — پیشرفته (multi-resolver + duplication) | | تحمل سانسور شدید | خوب | متوسط | بسیار قوی (هدف اصلی پروژه) | | پیچیدگی راهاندازی | متوسط | ساده | نصب و راه اندازی ساده تر
در صورت نیاز به شخصی سازی با توجه به تنظیمات گسترده، کمی پیچیده تر | | پشتیبانی SOCKS5 | بله | بله | بهینهشده برای SOCKS5 / SOCKS4 و کاهش سربارهای ساکس | | پشتیبانی Shadowsocks | ✅ | ❌ | غیرمستقیم: در حالت TCP Forwarding از پروتکلهای TCP پشتیبانی میکند
نظیر:
Shadowsocks, Vless/Vmess و ... | | Multipath واقعی | بله (QUIC multipath) | ❌ | بله (multi-resolver + duplication) | | Adaptive routing | محدود | ❌ | پیشرفته (مبتنی بر latency/loss) | | هدف طراحی | سرعت و کارایی بالا | سادگی و پایداری | عبور از محدودترین شبکهها — پایداری، سرعت و کارایی | | زبان پیادهسازی | Rust | Go | نسخه اصلی Go
اما نسخه قدیمی Python نیز موجود است | | بالانسر داخلی | 🔴 | ❌ | 🟢 (8 نوع بالانسر داخلی) | | سیستم Duplication | ❌ | ❌ | بله — افزایش ترافیک برای تضمین پایداری (قابل تنظیم یا غیرفعال سازی) | | MTU قابل پشتیبانی | بهتر از DNSTT | - | سازگار حتی با MTU کم به دلیل سربار بسیار پایین پروتکل | | سیستم Failover | ❌ | ❌ | ✅ | | سرعت دانلود 10 مگابایت در حالت لوکال | 🟡 0.978 ثانیه | 🔴 2.492 ثانیه | 🟢 0.270 ثانیه | | سرعت آپلود 10 مگابایت در حالت لوکال | 🟡 3.249 ثانیه | 🔴 16.207 ثانیه | 🟢 1.746 ثانیه | | قابلیت فشرده سازی | ❌ | ❌ | 🟢
به سه روش مختلف قابل تنظیم
Off, ZSTD, LZ4, ZLIB | | بررسی سلامت رزولورها و غیرفعالسازی خودکار | ❌ | ❌ | ✅ | | بازفعالسازی رزولورها در صورت دسترسی دوباره (پسزمینه) | ❌ | ❌ | ✅ | | ارائه DNS محلی در کلاینت (جلوگیری از DNS Hijacking) | ❌ | ❌ | ✅ (با DNS Caching حرفهای برای کاهش درخواستها) | | قابلیت DNS resolving از طریق SOCKS5 | ❌ | ❌ | ✅ (با DNS Caching) | | امکان پیکربندی حرفهای و دلخواه | 🟠 | 🟠 | 🟢 امکان پیکربندی دقیق تمام بخشها | | بینیاز از نرمافزارهای جانبی | ❌ | ❌ | 🟢 نیازی به نصب نرمافزار جانبی نیست؛ در صورت نیاز میتوانید از SOCKS یا ابزارهای خارجی مانند Shadowsocks یا OpenVPN استفاده کنید. |
پروژه MasterDnsVPN صرفاً یک ایدهٔ علمی و آموزشی است و بر همین اساس طراحی و پیادهسازی شده است.
LICENSE این مخزن است. هرگونه استفاده خارج از چارچوب آن مجوز ممنوع است.برای دریافت آخرین اخبار، نسخهها و اطلاعیههای پروژه، کانال تلگرام ما را دنبال کنید: Telegram Channel
masterking32.ton
0x517f07305D6ED781A089322B6cD93d1461bF8652
TLApdY8APWkFHHoxebxGY8JhMeChiETqFH
از هر نوع حمایت و بازخورد شما سپاسگزاریم — کمکها برای توسعه و بهبود پروژه بسیار ارزشمند است.
نمای کلی و مختصر از قابلیتهای اصلی MasterDnsVPN:
این فهرست نمای کلی و مختصری از قابلیتهاست؛ برای جزئیات بیشتر به بخشهای مرتبط در همین سند مراجعه کنید.
برای دریافت مستقیم درخواستهای DNS روی سرور باید یک زیردامنه را به سرورتان واگذار (delegate) کنید. بهصورت خلاصه دو رکورد بسازید: یک رکورد A برای آدرس سرور و یک رکورد NS که زیردامنه را به آن A ارجاع دهد.
Ansمثال:
ns.example.com -> 1.2.3.4در Cloudflare - ⚠️ نکته سریع: اگر دامنه روی Cloudflare است، در صفحه
DNSروی آیکون ابر کنار رکوردAکلیک کنید تا خاکستری (DNS only) شود؛ نباید Proxied (نارنجی) باشد.
NSvns.example.comمثال:
v.example.com -> ns.example.comدر Cloudflare - ⚠️ نکته سریع: رکورد
NSرا اضافه کنید؛ Cloudflare رکورد NS را پروکسی نمیکند، فقط مطمئن شوید رکوردnsقبلاً روی DNS only قرار دارد.
هر چه نامهای دامنه کوتاهتر باشند، فضای بیشتری برای داده در هر DNS request باقی میماند. برای throughput بهتر از نامهای کوتاه استفاده کنید. اگر از Cloudflare استفاده میکنید، باز هم رکوردها را DNS only نگه دارید.
اگر قصد دارید سرور را روی یک سیستم لینوکسی راهاندازی کنید، سادهترین راه استفاده از اسکریپت نصب خودکار است. کافی است دستور زیر را در ترمینال سرور وارد کنید:
bash <(curl -Ls https://raw.githubusercontent.com/masterking32/MasterDnsVPN/main/server_linux_install.sh)
این اسکریپت مراحل نصب و پیکربندی را خودکار انجام میدهد. بعد از پایان نصب، سرور اجرا میشود و کلید رمزنگاری در لاگ ترمینال نمایش داده میشود و همچنین در فایل encrypt_key.txt کنار فایل اجرایی ذخیره میگردد — این کلید را در جای امن نگه دارید.
NS تنظیم کردهاید (مثلاً v.example.com).dig یا nslookup استفاده کنید (مثلاً dig v.example.com NS یا nslookup -type=ns v.example.com). برای پرسوجو مستقیم از nameserver جدید: dig @ns.example.com v.example.com A.ufw:sudo ufw allow 53/udp
sudo ufw reload
برای firewalld:
sudo firewall-cmd --add-port=53/udp --permanent
sudo firewall-cmd --reload
53 توسط سرویس دیگری اشغال شده باشد (مثلاً systemd-resolved در برخی توزیعها)، راهحل را در بخش «رفع مشکل اشغال بودن پورت ۵۳» ببینید.encrypt_key.txt) پس از نصب نمایش داده میشود؛ آن را کپی و امن نگه دارید، زیرا برای اتصال کلاینت لازم است.شما میتوانید این پروژه را به دو روش نصب و اجرا کنید:
برای راحتی شما، فایلهای اجرایی کلاینت و سرور از قبل در releaseها منتشر میشوند. کافی است نسخه مناسب سیستمعامل خود را دانلود و از حالت فشرده خارج کنید.
💡 نکته: بستههای release معمولاً شامل فایل اجرایی و فایلهای نمونهی کانفیگ هستند.
| سیستمعامل (OS) | پردازنده (Architecture) | مناسب برای سیستمهای... | لینک دانلود مستقیم |
|---|---|---|---|
| ویندوز (Windows) 🪟 | AMD64 (64-bit) |
ویندوز ۱۰ و ۱۱ | دانلود نسخه ویندوز ⬇️ |
| ویندوز (Windows) 🪟 | x86 (32-bit) |
سیستمهای قدیمی ۳۲ بیتی ویندوز | دانلود نسخه ویندوز x86 ⬇️ |
| ویندوز (Windows) 🪟 | ARM64 |
دستگاههای ویندوزی مبتنی بر ARM | دانلود نسخه ویندوز ARM64 ⬇️ |
| مکاواس (macOS) 🍎 | ARM64 |
مکهای جدید (سری M1 / M2 / M3) | دانلود نسخه مک (Apple Silicon) ⬇️ |
| مکاواس (macOS) 🍎 | AMD64 |
مکهای اینتل | دانلود نسخه مک اینتل ⬇️ |
| لینوکس (Linux) 🐧 | AMD64 (64-bit) |
توزیعهای جدید (اوبونتو ۲۲.۰۴+، دبیان ۱۲+) | دانلود نسخه لینوکس (جدید) ⬇️ |
| لینوکس (Linux) 🐧 | x86 (32-bit) |
سیستمهای قدیمی ۳۲ بیتی لینوکس | دانلود نسخه لینوکس x86 ⬇️ |
| لینوکس (Legacy) 🐧 | AMD64 (64-bit) |
توزیعهای قدیمی (اوبونتو ۲۰.۰۴، دبیان ۱۱) | دانلود نسخه لینوکس (سازگاری بالا) ⬇️ |
| لینوکس (Legacy) 🐧 | ARM64 |
سیستمهای ARM64 قدیمیتر که سازگاری بیشتری میخواهند | دانلود نسخه لینوکس Legacy ARM64 ⬇️ |
| لینوکس (ARM) 🐧 | ARM64 |
سرورهای ARM، رزبریپای و بردهای مشابه | دانلود نسخه لینوکس (ARM) ⬇️ |
| لینوکس (ARM) 🐧 | ARMv7 |
بردهای ARM ۳۲ بیتی و دستگاههای قدیمیتر | دانلود نسخه لینوکس ARMv7 ⬇️ |
| لینوکس (ARM) 🐧 | ARMv6 |
بردهای ARM قدیمیتر و سیستمهای سبک لینوکسی | دانلود نسخه لینوکس ARMv6 ⬇️ |
| لینوکس (ARM) 🐧 | ARMv5 |
دستگاههای ARM خیلی قدیمی و سیستمهای embedded | دانلود نسخه لینوکس ARMv5 ⬇️ |
| لینوکس (Linux) 🐧 | RISCV64 |
بردها و سرورهای لینوکسی مبتنی بر RISC-V | دانلود نسخه لینوکس RISCV64 ⬇️ |
| لینوکس (MIPS) 🐧 | MIPS |
سیستمها و روترهای لینوکسی MIPS با endian بزرگ | دانلود نسخه لینوکس MIPS ⬇️ |
| لینوکس (MIPS) 🐧 | MIPSLE |
سیستمها و روترهای لینوکسی MIPS با endian کوچک | دانلود نسخه لینوکس MIPSLE ⬇️ |
| لینوکس (MIPS) 🐧 | MIPS64 |
سیستمهای ۶۴ بیتی MIPS با endian بزرگ | دانلود نسخه لینوکس MIPS64 ⬇️ |
| لینوکس (MIPS) 🐧 | MIPS64LE |
سیستمهای ۶۴ بیتی |
$ claude mcp add MasterDnsVPN \
-- python -m otcore.mcp_server <graph>