İki nəfər eyni sualı verir və bir-birinə uyğun olmayan cavablar alır, çünki fərqli yerlərdə dayanırlar. Biri sistemin VPN ayarları ekranını açıb tətbiqlər siyahısını redaktə edir. Digəri redaktorda VpnService.Builder.addDisallowedApplication() yazır. Hər ikisi bunu tətbiq üzrə VPN filtri adlandırır. Onlardan yalnız biri təsvir etdiyi nəzarətə sahibdir və heç biri heç nəyi bloklamır.

İstifadəçinin gördüyü ekrandan başlayın

Ayarları açın, VPN bəndini tapın və həqiqətən aktiv olan bağlantıya baxın. Əgər müştəri tətbiq üzrə siyahı təklif edirsə, o siyahı müştərinin öz tunelinə aiddir. Platforma kənar tətbiqin başqa VPN-in tətbiq seçimini oxuması və ya redaktə etməsi üçün ümumi API yayımlamır, ona görə ikinci tətbiq bu siyahını istifadəçi üçün düzəldə bilməz.

Bu, bələdçidə ilk çəngəldir. Quraşdırılmış VPN-də belə ayar yoxdursa, ətrafında kod yazmağa heç nə yoxdur: funksiya tunelə sahib olan məhsulda yoxdur. Əgər varsa, düzgün düzəliş həmin ekrandadır və onu aça bilən şəxs tərəfindən edilir.

Paketi tunelin içinə qədər izləyin

Öz tətbiqiniz tunel qurduqda TUN interfeysi yaradır və hansı tətbiqlərin trafikinin ora girdiyini bəyan edir. Üzvlük çağırışları interfeys qurulmazdan əvvəl baş verir və bundan sonra qaydalar dəsti həmin sessiya üçün sabitdir:

val builder = VpnService.Builder()
builder.addAddress("10.8.0.2", 32)
builder.addRoute("0.0.0.0", 0)
builder.addDisallowedApplication("com.example.bypass")
val tun = builder.establish()   // membership decided here

Bu çağırışlar yalnız tətbiqinizin indicə yaratdığı tunelə aiddir. Onlar cihaz miqyaslı siyasət deyil, digər müştərilər üçün qalmır və başqasının VPN-inə müdaxilə edə bilməz. Builder çağırışı paketin həll olunmaması səbəbindən xəta verdikdə interfeys heç vaxt qurulmur; bu, səssiz deyil, təmiz uğursuzluqdur.

Niyə istisna blok kimi göründü

İcazə verilməyən tətbiq tunelinizin ətrafından əsas şəbəkəyə yönəldilir. Bu, onu bloklamağın əksidir: trafik yenə cihazdan çıxır, sadəcə idarə etdiyiniz interfeysdən kənarda. Güclü divar tipli tətbiq bunun əksini edir: tətbiqin trafikini tunelinə buraxır, sonra paketləri atır və ya ötürməkdən imtina edir; beləliklə interfeys eyni qalır, siyasətin istiqaməti isə tərsinə çevrilir.

Bu tərsinə çevrilmənin arxasındakı iş konfiqurasiya bayrağı deyil. Tunel deskriptorundan IP paketlərini oxuyur, hər axın üzrə qərar verir və onları qorunan soketdən ötürür və ya atırsınız. Emal edə bilmədiyiniz hər şey sadəcə dayanır; buna görə yarımçıq tunel işlək filtrdən çox sınıq şəbəkə kimi görünür. Məqsədiniz blokdursa, paket emalına, ön plan xidmətinə və təsnif edə bilmədiyiniz trafik üçün yazılı siyasətə büdcə ayırın.

Özünüz quranda nə pozulur

Android ümumiyyətlə eyni anda yalnız bir aktiv VPN-ə icazə verir, ona görə filtr tuneliniz və məxfilik tuneliniz məhsullar zəncirləməni dəstəkləmirsə eyni yer üçün yarışır. Bağlantıları bloklayan həmişə-aktiv VPN uğursuzluq rejimini burada vacib olan şəkildə dəyişir: tunelə girə bilməyən trafik birbaşa göndərilmək əvəzinə atılır; sızma qarşısının alınması dizaynının istədiyi, sazlama sessiyasının isə gözləmədiyi budur.

Paket görünürlüğü ikinci tələdir. Tətbiqin paket adının həlli NameNotFoundException ilə uğursuz ola bilər və yeni Android versiyalarında görə bildiyiniz paketlər dəsti bəyan etdiyiniz sorğulardan asılıdır. Hər adın həll olunduğunu güman etmək əvəzinə istisnanı idarə edin və tətbiqlər quraşdırıldıqda və ya silindikdə siyahını yenidən oxuyun, onu əbədi keşləməyin.

İdarə olunan cihazlar üçüncü sahib əlavə edir. Korporativ mobillik siyasəti tətbiq üzrə VPN və ya həmişə-aktiv profil təyin edə bilər və adi tətbiq bunu ləğv edə bilməz. Öz kodunuzu sazlamazdan əvvəl cihazın idarə olunub-olunmadığını yoxlayın, çünki bu halda dəyişməyə çalışdığınız siyahı telefonu tutan heç kim tərəfindən redaktə oluna bilməz.

Nəzarət etdiyiniz tətbiqlə sınayın

Filtrəməyə çalışdığınız tətbiqlə sınamayın. Şəbəkə davranışını müşahidə edə bildiyiniz ikinci tətbiqdən istifadə edin və onun trafikinin sizin tunelinizdən çıxdığını, hədəfin isə çıxmadığını yoxlayın. İkisi də içəridə qalırsa, siyasət işləyir və hədəf istisnadır; heç biri çıxmırsa, tunelin özü səhvdir və tətbiq siyahısı problem deyil.

Sonra üç şeydən hansını həqiqətən qurduğunuza qərar verin. Tətbiq üzrə tunel builder API-sidir və siyahı profilinizin bir hissəsidir. Cihaz güclü divarı paket emalı və müdafiə edə biləcəyiniz həyat dövrəsidir. Başqasının VPN-ini dəyişmək ümumiyyətlə dəstəklənən yol deyil və orada dürüst cavab ayarın həmin məhsula aid olmasıdır.

Əlaqəli məqalələr