VPN برای Android: Always-on، باتری و امنیت
اندروید چگونه VPN را اجرا میکند، چرا اتصال در پسزمینه قطع میشود، Always-on VPN چه کاری میکند و چگونه یک APK را راستیآزمایی کنیم.

اندروید برای برنامههای VPN یک رابط سیستمی اختصاصی به نام VpnService فراهم میکند. برنامه یک کارت شبکهٔ مجازی میسازد و تمام ترافیک دستگاه از آن عبور میکند. پیام آشنای «برنامه میخواهد اتصال VPN برقرار کند» و نماد کلید در نوار وضعیت از همینجا میآید.
نخستین اتصال
- برنامه را از صفحهٔ Colitu برای Android نصب کنید.
- روی Connect بزنید. اندروید مجوز VPN را میپرسد؛ OK را بزنید. فقط یک بار پرسیده میشود.
- نماد کلید در نوار وضعیت یعنی تونل برقرار است.
اگر معماری پردازندهٔ خود را نمیدانید، APK جهانی (universal) را دانلود کنید. بیشتر گوشیهای اخیر arm64-v8a هستند؛ گوشیهای قدیمیتر 32 بیتی armeabi-v7a هستند.
چرا VPN در پسزمینه قطع میشود
رابطهای سفارشی بسیاری از سازندگان با شدت باتری را صرفهجویی میکنند و سرویسهای پسزمینه، از جمله VPN، را میبندند. کارهایی که باید بکنید:
- Settings → Apps → Colitu → Battery → Unrestricted.
- در Xiaomi (MIUI/HyperOS)، Autostart را فعال کنید و برنامه را در فهرست برنامههای اخیر قفل کنید.
- در Huawei، «Manage automatically» را برای Colitu در بخش اجرای برنامه خاموش کنید.
- در Samsung، Colitu را از «Sleeping apps» حذف کنید.
Always-on VPN
اندروید 7 و بالاتر قابلیتی سیستمی به نام Always-on VPN دارند: Settings → Network & internet → VPN → Colitu → نماد چرخدنده. اندروید پس از راهاندازی مجدد یا قطع شدن، VPN را دوباره برقرار میکند.
در همان صفحه Block connections without VPN (اندروید 8+) هست. این گزینه مانند یک قطعکن اضطراری در سطح سیستم عمل میکند: اگر تونل بیفتد، برنامهها نمیتوانند مستقیم به اینترنت دسترسی داشته باشند. توجه داشته باشید که تا زمانی که VPN وصل نشود اصلاً اینترنت وجود ندارد.
برنامه چگونه پروتکل را انتخاب میکند
Colitu آخرین پروتکلی را که روی شبکهٔ شما کار کرده به خاطر میسپارد و ابتدا آن را امتحان میکند. اگر مسدود باشد، برنامه در پسزمینه به سراغ بعدی میرود: Hysteria2، VLESS Reality، Trojan یا Shadowsocks 2022. در دستگاههای ضعیف، برنامه انیمیشنهای خود را کم میکند تا منابع را هدر ندهد.
امنیت برنامه
- Android Keystore. توکنهای نشست با کلیدی از Android Keystore رمزگذاری میشوند، یعنی مخزن کلید سیستمی که کلیدها از آن قابل استخراج نیستند.
- Certificate pinning. اتصال به API رمزگذاری Colitu فقط گواهیهایی را میپذیرد که از کلیدهای ریشهٔ شناختهشده صادر شدهاند. گواهیای که در شبکه جایگزین شود (مثلاً توسط یک پروکسی سازمانی) رد میشود.
- بررسی بهروزرسانی. پیش از نصب بهروزرسانی، برنامه SHA-256 فایل و اثر انگشت گواهی امضا را با manifest انتشار مقایسه میکند.
راستیآزمایی APK
اگر APK را دستی و نه از طریق برنامه دانلود کردهاید، آن را بررسی کنید:
- SHA-256 فایل را با مقدار موجود در صفحهٔ دانلود مقایسه کنید.
- برای کاربران پیشرفته:
apksigner verify --print-certs Colitu-*.apk— اثر انگشت SHA-256 گواهی باید با مقدار منتشرشده یکی باشد.
کد برنامه متنباز است: github.com/colitu/android.