Izložena aplikacija še vedno na spletu? Pravila za aplikacije in poti se razlikujejo
Izločitev aplikacije Android iz VPN je ne blokira. Seznami dovoljenih, pravila UID in potisnjene poti določajo vsak svoj del poti.
Izločitev paketa je navodilo za usmerjanje, ne blokada, zato so strani, ki se naložijo po povezavi VPN, pričakovane in ne dokaz okvare. Izločitev odstrani aplikacijo iz tunela, namesto da bi jo blokirala, in običajno omrežje nosi njen promet. Tu se srečata dve ločeni politiki: ena izbira procese, druga izbira cilje. Branje v tem vrstnem redu pojasni, zakaj povezana ikona in delujoča aplikacija nista protislovje.
Zakaj izločitev ohranja omrežje odprto
VpnService.Builder sprejme bodisi seznam dovoljenih bodisi seznam prepovedanih, nikoli obeh. Samo paketi s seznama dovoljenih gredo skozi tunel. Seznam prepovedanih to obrne: vsak paket razen navedenih uporablja tunel, navedeni pa ohranijo fizično pot. Paket, ki ni naveden na seznamu dovoljenih, je prav tako zunaj tunela, zato je izločitev v tem načinu običajno stanje za večino aplikacij.
To naredi lokalni vnos prepovedi odločitev o usmerjanju, ne pravilo požarnega zidu. Če je zahteva preprečiti aplikaciji, da doseže gostitelja, jo mora tunel pokriti, strežnik ali lokalna politika pa mora promet zavrniti. Odstranitev aplikacije iz tunela spremeni le, kateri vmesnik nosi njene pakete.
Primer Play Store je običajen namerni primer. Izločitev paketa trgovine omogoči prenosom uporabo osnovne povezave, ko izhod VPN moti prenose, in pokaže, da izločitev pomeni obhod, ne blokado.
En profil, en seznam
Graditelj vrže izjemo, če se uporabita oba klica, zato je profil pred vami bodisi seznam dovoljenih bodisi prepovedanih. To eno dejstvo določa, kako brati vsako poznejše opažanje. Preverite kodo ali upravljano konfiguracijo pred usmerjevalno tabelo, ker seznam odloča, kaj pomeni preostanek izhoda. Hibridni profil ni stanje, ki bi si ga lahko ogledali.
Razlika tudi napove, kaj bo storila novo nameščena aplikacija. Na seznamu dovoljenih ostane zunaj, dokler je nekdo ne doda, na seznamu prepovedanih pa se privzeto pridruži tunelu.
Upravljane konfiguracije ponujajo isto izbiro pod drugimi imeni ključev, nekatere konzole pa jo opisujejo kot način VPN za posamezno aplikacijo in ne kot seznam. Vedenje se vseeno zvede na ta dva klica, zato sledite nastavitvi nazaj do seznama paketov, namesto da bi zaupali oznaki. Če se oznaka in seznam ne ujemata, zmaga seznam.
Sledite pravilu UID do tabele tunela
Android da vsaki aplikaciji svojo uporabniško ID Linuxa, storitev VPN pa namesti pravila politike, ki ustrezajo obsegom UID. Ustrezni promet se pošlje v usmerjevalno tabelo, katere privzeta pot kaže na napravo tun. Številka tabele se dodeli za vsako instanco VPN, zato se spremeni po ponovni povezavi ali po ustvarjanju drugega profila VPN.
Izhod pravil je zemljevid. Vsaka vrstica poimenuje iskalno tabelo, ta tabela pa hrani privzeto pot, ki odloči, ali ustrezni paketi vstopijo v tunel.
adb shell ip rule show
adb shell ip route show table all
adb shell cmd package list packages -U | grep <package>
Najprej zaženite tretji ukaz, da dobite UID, nato poiščite pravilo, katerega obseg ga vsebuje. To pravilo kaže na številko tabele, in ip route show table <n> s to številko pokaže, ali obstaja privzeta pot skozi napravo tun. Če tabela nima privzete poti, je aplikacija izbrana, a nima poti, kar je druga okvara.
Ti ukazi zahtevajo razhroščevalno gradnjo ali napravo, kjer lahko adb shell bere stanje omrežja. Na proizvodnem telefonu upravitelj paketov še vedno odgovarja, vendar je pregled usmerjanja lahko zavrnjen, zato zapišite, kar lahko, preostanek pa obravnavajte kot nepreverjen.
Pot zahteva predpono, ne aplikacije
Builder.addRoute zahteva ciljne predpone za tunel. Profil, ki doda samo 10.0.0.0/8 pošlje to predpono skozi tunel in pusti vsak drug cilj na fizični poti. To je običajno razdeljeno tuneliranje in ni odvisno od tega, katere aplikacije so izbrala pravila.
Konfiguracija, ki jo potisne strežnik, zrcali isti model. Posamezna potiskanja poti dodajo predpone, medtem ko direktiva redirect-gateway nadomesti privzeto pot in ujame vse za aplikacije, ki jih tunel pokriva. Odstranitev te direktive lahko skrči delujoč tunel na eno podomrežje brez kakršne koli spremembe na napravi.
Potisnjena pot z nenavadnim prehodom ali metričnim kvalifikatorjem se prav tako morda ne namesti. Prednost dajte preprosti obliki predpone in prepustite posredovanje ter NAT strežniku.
Preberite presek, preden spremenite nastavitev
Tunel nosi presek pokritih procesov in zahtevanih ciljev. Pokrita aplikacija, ki zahteva naslov zunaj objavljenih predpon, odide po fizičnem omrežju. Prepovedan paket ostane zunaj tudi takrat, ko zahteva naslov znotraj teh predpon. Noben primer ni napaka; oba sta dve politiki, ki opravljata svoje delo.
VPN za posamezno aplikacijo lahko pusti povezano aplikacijo tudi brez povezljivosti. Ko je on-demand izklopljen in tunel ne deluje, aplikacija ostane vezana na VPN za posamezno aplikacijo in nima rezerve, kar je videti kot pokvarjena aplikacija in ne kot stanje politike. Vklop on-demand ali odstranitev povezave prek upravljanja to spremeni.
| Layer | What it selects | Where to look | Typical mismatch |
|---|---|---|---|
| Package list | Processes | Builder calls or managed configuration | App excluded but expected to be blocked |
| UID policy rule | Which table a UID uses | ip rule show | Tunnel icon on, app still on Wi-Fi |
| Routing table | Destinations for matched traffic | ip route show table <n> | Covered app reaches only one subnet |
| Server push | Prefixes offered to the client | Server route configuration | Tunnel shrinks after a server edit |
Diagnosticirajte eno os naenkrat. Najprej potrdite dovoljenje ali prepoved, drugo preberite nameščena pravila UID in tabele, nazadnje pa preizkusite drugo aplikacijo na isti cilj. Druga aplikacija v eni zahtevi loči izbiro procesa od izbire cilja.
Zapišite rezultat kot aplikacijo, cilj in številko tabele. Prav to trojico mora ohraniti naslednja sprememba.