Vylúčenie balíka je pokyn na smerovanie, nie blokovanie, takže stránky, ktoré sa načítajú po pripojení VPN, sú očakávané a nie dôkaz poruchy. Vylúčenie odoberie aplikáciu z tunela namiesto toho, aby ju blokovalo, a prevádzku nesie bežná sieť. Stretávajú sa tu dve oddelené politiky: jedna vyberá procesy, druhá vyberá ciele. Čítanie v tomto poradí vysvetľuje, prečo pripojená ikona a fungujúca aplikácia nie sú protiklad.

Prečo vylúčenie drží sieť otvorenú

VpnService.Builder prijíma buď povolený, alebo zakázaný zoznam, nikdy oba. Balíky v povolenom zozname sú jediné, ktoré idú tunelom. Zakázaný zoznam to obracia: každý balík okrem uvedených používa tunel a uvedené si držia fyzickú cestu. Neuvedený balík v povolenom zozname je tiež mimo tunela, takže vylúčenie je v tomto režime normálny stav pre väčšinu aplikácií.

Tým sa z miestneho záznamu v zakázanom zozname stáva rozhodnutie o smerovaní, nie pravidlo firewallu. Ak je cieľom zabrániť aplikácii dosiahnuť hostiteľa, musí ju tunel pokryť a server alebo miestna politika musí prevádzku odmietnuť. Odobratie aplikácie z tunela mení len to, ktoré rozhranie nesie jej pakety.

Prípad Play Store je obvyklý zámerný príklad. Vylúčenie balíka obchodu umožní stiahnutiam použiť základné pripojenie, keď výstup VPN prekáža prenosom, a ukazuje, že vylúčenie znamená obchádzanie, nie blokovanie.

Jeden profil, jeden zoznam

Tvorca vyhodí výnimku, ak sa použijú obe volania, takže profil pred vami je buď povolený, alebo zakázaný zoznam. Tento jediný fakt určuje, ako čítať každé ďalšie pozorovanie. Skontrolujte kód alebo spravovanú konfiguráciu pred smerovacou tabuľkou, pretože zoznam rozhoduje, čo zvyšok výstupu znamená. Hybridný profil nie je stav, na ktorý sa môžete pozerať.

Rozdiel tiež predpovedá, čo urobí novo nainštalovaná aplikácia. V povolenom zozname zostane vonku, kým ju niekto nepridá, zatiaľ čo v zakázanom sa predvolene pripojí k tunelu.

Spravované konfigurácie vystavujú rovnakú voľbu pod inými názvami kľúčov a niektoré konzoly to opisujú ako režim VPN pre jednotlivé aplikácie, nie ako zoznam. Správanie sa však stále redukuje na tieto dve volania, takže vystopujte nastavenie späť k zoznamu balíkov, namiesto toho, aby ste dôverovali označeniu. Ak sa označenie a zoznam rozchádzajú, vyhráva zoznam.

Sledujte pravidlo UID k tabuľke tunela

Android dáva každej aplikácii vlastné používateľské ID Linuxu a služba VPN inštaluje pravidlá politiky, ktoré zodpovedajú rozsahom UID. Zodpovedajúca prevádzka sa posiela do smerovacej tabuľky, ktorej predvolená trasa ukazuje na zariadenie tun. Číslo tabuľky sa prideľuje pre každú inštanciu VPN, takže sa mení po opätovnom pripojení alebo po vytvorení druhého profilu VPN.

Výstup pravidiel je mapa. Každý riadok pomenúva vyhľadávaciu tabuľku a táto tabuľka drží predvolenú trasu, ktorá rozhoduje, či zodpovedajúce pakety vstúpia do tunela.

adb shell ip rule show
adb shell ip route show table all
adb shell cmd package list packages -U | grep <package>

Najprv spustite tretí príkaz, aby ste získali UID, potom nájdite pravidlo, ktorého rozsah ho obsahuje. Toto pravidlo ukazuje na číslo tabuľky a ip route show table <n> s týmto číslom ukáže, či existuje predvolená trasa cez zariadenie tun. Ak tabuľka nemá predvolenú trasu, aplikácia je vybraná, ale nemá cestu, čo je iná porucha.

Tieto príkazy vyžadujú ladiťeľný build alebo zariadenie, kde adb shell môže čítať stav siete. Na produkčnom telefóne správca balíkov stále odpovedá, ale kontrola smerovania môže byť odmietnutá, takže zaznamenajte, čo môžete, a zvyšok považujte za neoverený.

Trasa si nárokuje prefix, nie aplikáciu

Builder.addRoute si nárokuje cieľové prefixy pre tunel. Profil, ktorý pridá len 10.0.0.0/8 pošle tento prefix tunelom a každý ďalší cieľ nechá na fyzickej ceste. To je bežné rozdelené tunelovanie a je nezávislé od toho, ktoré aplikácie pravidlá vybrali.

Konfigurácia vložená serverom zrkadlí ten istý model. Jednotlivé vloženia trás pridávajú prefixy, zatiaľ čo direktíva redirect-gateway nahrádza predvolenú trasu a zachytí všetko pre aplikácie, ktoré tunel pokrýva. Odobratie tejto direktívy môže zmenšiť fungujúci tunel na jednu podsiev bez akejkoľvek zmeny na zariadení.

Vložená trasa s neobvyklou bránou alebo metrickým kvalifikátorom sa tiež nemusí nainštalovať. Preferujte obyčajný tvar prefixu a nechajte server starať sa o preposielanie a NAT.

Prečítajte si prienik, než zmeníte nastavenie

Tunel nesie prienik pokrytých procesov a nárokovaných cieľov. Pokrytá aplikácia, ktorá žiada adresu mimo zverejnených prefixov, odchádza fyzickou sieťou. Zakázaný balík zostáva vonku, aj keď žiada adresu vnútri týchto prefixov. Ani jeden prípad nie je chyba; oba sú dve politiky, ktoré robia svoju prácu.

VPN pre jednotlivé aplikácie môže tiež nechať pridruženú aplikáciu bez pripojenia. Keď je on-demand vypnutý a tunel nefunguje, aplikácia zostáva viazaná na VPN pre jednotlivé aplikácie a nemá náhradnú cestu, čo vyzerá ako pokazená aplikácia, nie ako stav politiky. Zapnutie on-demand alebo odobratie pridruženia cez správu to zmení.

LayerWhat it selectsWhere to lookTypical mismatch
Package listProcessesBuilder calls or managed configurationApp excluded but expected to be blocked
UID policy ruleWhich table a UID usesip rule showTunnel icon on, app still on Wi-Fi
Routing tableDestinations for matched trafficip route show table <n>Covered app reaches only one subnet
Server pushPrefixes offered to the clientServer route configurationTunnel shrinks after a server edit

Diagnostikujte jednu os po druhej. Najprv potvrďte povolenie alebo zakázanie, druhé prečítajte nainštalované pravidlá UID a tabuľky a nakoniec otestujte druhú aplikáciu na rovnaký cieľ. Druhá aplikácia oddeľuje výber procesu od výberu cieľa v jedinej požiadavke.

Zapíšte výsledok ako aplikáciu, cieľ a číslo tabuľky. Práve túto trojicu musí ďalšia zmena zachovať.

Súvisiace články