English | فارسی
این ریپوزیتوری کلاینت اندرویدی MasterDnsVPN است که رابط کاربری آن با Kotlin/Jetpack Compose توسعه داده شده و از هسته شبکه Go پروژه اصلی استفاده می کند.
- پروژه اصلی (Upstream): https://github.com/masterking32/MasterDnsVPN
- تمرکز این ریپو: اپلیکیشن اندروید، تجربه کاربری، تنظیمات و بسته بندی انتشار
- منطق هسته Go با
gomobileبه صورت AAR وارد اپ می شود
- کنترل کامل چرخه اتصال VPN (اتصال/قطع/وضعیت)
- نمایش زنده تله متری اتصال (وضعیت، سرعت، پیشرفت اسکن)
- صفحه لاگ ساختاریافته با فیلتر منبع و سطح خطا
- مدیریت چند پروفایل (ایجاد، انتخاب، ویرایش، حذف)
- تنظیمات پروفایل و ابزارهای ایمپورت Resolver
- تنظیمات سراسری برای Proxy Mode، Split Tunneling و Sharing
- ذخیره سازی محلی با Room و DataStore
- پشتیبانی از Android 5.0 به بالا (API 21+)
- Home: وضعیت اتصال، سرعت ترافیک، پروفایل فعال، اکشن سریع
- Profiles: ساخت و مدیریت پروفایل ها
- Settings: تنظیمات پروفایل و تنظیمات سراسری
- Logs: نمایش تایم لاین لاگ ها با ابزار Share/Clear
- Info: اطلاعات نسخه و لینک های پروژه
- به صفحه Releases همین ریپوزیتوری بروید.
- آخرین فایل universal APK را دانلود کنید (پیشنهادی).
- فایل را روی دستگاه اندرویدی نصب کنید.
اگر نصب مسدود شد، گزینه Install unknown apps را برای مرورگر یا فایل منیجر فعال کنید.
برای استفاده، ابتدا باید یک سرور MasterDnsVPN فعال داشته باشید.
- از تب Profiles یک پروفایل بسازید یا ایمپورت کنید.
- مقادیر الزامی مثل
DOMAINSوENCRYPTION_KEYرا وارد کنید. - لیست Resolverها را خط به خط اضافه کنید (
IPیاIP:PORT). - پروفایل را ذخیره و انتخاب کنید.
- به تب Home برگردید و Connect را بزنید.
- JDK 17
- Android SDK (سازگار با
compileSdk 35) - Go toolchain
- ابزارهای
gomobileوgobind
# From repository root
bash ./android/build_go_mobile.sh
cd android
./gradlew :app:assembleDebugبرای ریلیز باید متغیرهای امضای اندروید را تنظیم کنید (مطابق فایل workflow به نام release-manual.yml):
ANDROID_SIGNING_ENABLED=trueANDROID_KEYSTORE_PATHANDROID_KEYSTORE_PASSWORDANDROID_KEY_ALIASANDROID_KEY_PASSWORD- اختیاری:
ANDROID_VERSION_NAMEوANDROID_VERSION_CODE
سپس اجرا کنید:
cd android
./gradlew :app:assembleRelease- در فایل
android-ci.ymlبیلد AAR و APK دیباگ برای Push/PR انجام می شود. - در فایل
go-test.ymlتست های Go روی پکیج های مربوط اجرا می شود. - در فایل
release-manual.ymlانتشار دستی نسخه امضاشده و آپلود فایل های خروجی انجام می شود.
- فایل APK را فقط از ریلیزهای معتبر دریافت کنید.
- مقدار
ENCRYPTION_KEY، اطلاعات ورود و کانفیگ کامل را عمومی نکنید. - قبل از ارسال اسکرین شات یا لاگ، موارد حساس را مخفی کنید.
- خطای نصب / آپدیت انجام نمی شود: نسخه قبلی با امضای متفاوت را حذف و دوباره نصب کنید.
- متصل است ولی اینترنت ندارید: دامنه، Resolverها و دسترس پذیری سرور را بررسی کنید.
- اگر VPN سریع قطع می شود: دسترسی VPN و محدودیت های Battery Optimization را بررسی کنید.
- لاگ نمایش داده نمی شود: پروفایل فعال انتخاب کنید و یک بار اتصال را تست کنید.
این پروژه برای استفاده های قانونی مربوط به حریم خصوصی و مسیریابی شبکه ارائه شده است. مسئولیت رعایت قوانین محلی، سیاست سازمانی و شرایط سرویس ها بر عهده کاربر است.
این پروژه تحت لایسنس MIT منتشر شده است. فایل LICENSE را ببینید.
- پروژه اصلی MasterDnsVPN و همه مشارکت کنندگان
- لینک پروژه اصلی: https://github.com/masterking32/MasterDnsVPN
- توسعه دهندگان و تسترهای کلاینت اندروید