آموزش نصب و راه اندازی MasterDnsVPN

masterdnsvpn

MasterDnsVPN یک نرم‌افزار متن‌باز و پیشرفته برای DNS Tunneling است که با زبان Go توسعه داده شده و با کپسوله‌سازی ترافیک TCP داخل درخواست‌ها و پاسخ‌های DNS، امکان عبور از محدودیت‌ها و فیلترینگ شدید اینترنت را فراهم می‌کند. این پروژه با تمرکز بر پایداری، سرعت و عملکرد در شبکه‌های دارای Packet Loss بالا طراحی شده و نسبت به ابزارهایی مانند DNSTT و SlipStream بهینه‌سازی‌های گسترده‌ای ارائه می‌دهد.

از مهم‌ترین ویژگی‌های آن می‌توان به موارد زیر اشاره کرد:

  • پشتیبانی از Load Balancing بین چند DNS Resolver
  • سیستم Multipath برای ارسال هم‌زمان بسته‌ها از مسیرهای مختلف
  • پروتکل اختصاصی ARQ با Overhead بسیار پایین
  • رمزنگاری‌های متنوع مانند AES-GCM و ChaCha20
  • فشرده‌سازی داده‌ها با ZSTD و LZ4
  • پشتیبانی از SOCKS5 و TCP Tunnel
  • تشخیص خودکار MTU
  • مانیتورینگ Resolverها
  • قابلیت Multiplexing چند اتصال TCP روی یک Session

در ادامه قصد داریم تا MasterDnsVPN را بر روی یک سرور لینوکسی راه اندازی کنیم.

پیش نیازها:

۱. داشتن یک دامنه (Domain)

2. داشتن یک سرور

 

گام ۱ : تنظیمات دامنه

نیاز هست تا ۲  زیردامنه (subdomain) ایجاد شود. یک رکورد A برای آدرس سرور و یک رکورد NS که زیردامنه را به آن رکورد A ارجاع دهد.

 

۱.۱. ساخت رکورد A

یک رکورد از نوع A ایجاد کنید (با نام کوتاه) که به آدرس IPv4 سرور اشاره کند. به عنوان نمونه:

ns.example.com ==>> 192.168.1.70

نکته: اگر دامنه روی Cloudflare است، در صفحه DNS روی آیکون ابر کنار رکورد A کلیک کنید تا خاکستری (DNS only) شود؛ نباید Proxied (نارنجی) باشد.

گام ۱.۲. ساخت رکورد NS

یک رکورد از نوع ns ایجاد کنید که به رکورد A که قبلا ایجاد شد، اشاره کند. به عنوان نمونه:

v.example.com ==>> ns.example.com

گام ۲: نصب و تنظیمات سرور

 

۲.۱. راه اندازی با پادمن (Podman)

برای راه اندازی MasterDnsVPN با استفاده از پادمن (Podman) کافیست تا دستور زیر را اجرا کنید:

$ podman run -d --name masterdnsvpn --restart unless-stopped -e DOMAIN=v.example.com -v $(pwd)/data:/data:Z -p 53:53/tcp -p 53:53/udp ghcr.io/masterking32/masterdnsvpn:latest

اگر قصد دارید تا کانتینر هنگام راه اندازی سرور نیز اجرا شود باید مراحل زیر را انجام دهید. ابتدا فایل Podman Quadlet آن را بسازید:

$ vi ~/.config/containers/systemd/masterdnsvpn.container
سپس خطوط زیر را درون فایل قرار دهید و ذخیره کنید:
[Unit]
Description=masterdnsvpn container
After=network-online.target
Wants=network-online.target
[Container]
Image=ghcr.io/masterking32/masterdnsvpn:latest
Pull=newer
AutoUpdate=registry
ContainerName=masterdnsvpn
Volume=%h/volumes/masterdnsvpn/data:/data:Z
# Environment variables
Environment=DOMAIN=v.example.com
PublishPort=53:53/udp
PublishPort=53:53/tcp
[Service]
Restart=always
[Install]
WantedBy=default.target
اکنون جهت start کردن کانتینر پادمن این دستور ها رو اجرا کنید:
$ systemctl --user daemon-reload
$ systemctl --user start masterdnsvpn
برای دیدن log ها می توانید از این دستور استفاده کنید:

$ podman logs -f masterdnsvpn

 

۲.۲. راه اندازی با داکر (Docker)

برای راه اندازی MasterDnsVPN با داکر کافیست تا دستور زیر را اجرا کنید:

 

# docker run -d --name masterdnsvpn --restart unless-stopped -e DOMAIN=v.example.com -v $(pwd)/data:/data -p 53:53/tcp -p 53:53/udp ghcr.io/masterking32/masterdnsvpn:latest

برای دیدن log های کانتینر می توانید از این دستور استفاده کنید:

# docker logs -f masterdnsvpn

 

روش اتصال به MasterDnsVPN

پس از راه اندازی سرویس MasterDnsVPN کافیست تا Encryption Key را از log های کانتینر یا از فایل encrypt_key.txt که در volume ذخیره شده است را به دست بیاورید. اکنون این Encryption Key و زیردامنه ای (در این مثال v.example.com) که به برنامه معرفی کردید را در کلاینت MasterDnsVPN یا WhiteDNS وارد کنید تا به سرویس MasterDnsVPN متصل شوید.
برای اطلاعات بیشتر و همچنین دانلود کلاینت MasterDnsVPN یا WhiteDNS می توانید به پروژه‌ آنها بر روی Github مراجعه کنید:

https://github.com/masterking32/MasterDnsVPN

 

https://github.com/iampedii/WhiteDNS

 

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.

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