Izuzeće paketa je uputa za usmjeravanje, a ne blokada, pa su stranice koje se učitaju nakon spajanja VPN-a očekivane, a ne dokaz kvara. Izuzeće uklanja aplikaciju iz tunela umjesto da je blokira, a obična mreža nosi njezin promet. Ovdje se susreću dvije odvojene politike: jedna bira procese, druga bira odredišta. Čitanje u tom redu objašnjava zašto povezana ikona i aplikacija koja radi nisu proturječje.

Zašto izuzeće drži mrežu otvorenom

VpnService.Builder prihvaća ili popis dopuštenih ili popis zabranjenih, nikada oba. Paketi na popisu dopuštenih jedini idu kroz tunel. Popis zabranjenih to obrće: svaki paket osim navedenih koristi tunel, a navedeni zadržavaju fizički put. Paket koji nije naveden na popisu dopuštenih također je izvan tunela, pa je izuzeće normalno stanje za većinu aplikacija u tom načinu rada.

To čini lokalni unos zabrane odlukom o usmjeravanju, a ne pravilom vatrozida. Ako je cilj spriječiti aplikaciju da dosegne host, tunel je mora pokriti, a poslužitelj ili lokalna politika moraju odbiti promet. Uklanjanje aplikacije iz tunela mijenja samo to koje sučelje nosi njezine pakete.

Slučaj Play Store uobičajen je namjerni primjer. Izuzeće paketa trgovine pušta preuzimanja kroz osnovnu vezu kada VPN izlaz ometa prijenos, i pokazuje da izuzeće znači zaobilaženje, a ne blokadu.

Jedan profil, jedan popis

Graditelj baca iznimku ako se koriste oba poziva, pa je profil pred vama ili popis dopuštenih ili popis zabranjenih. Ta jedna činjenica određuje kako čitati svako kasnije opažanje. Provjerite kod ili upravljanu konfiguraciju prije tablice usmjeravanja, jer popis odlučuje što znači ostatak izlaza. Hibridni profil nije stanje koje možete gledati.

Razlika također predviđa što će novoinstalirana aplikacija raditi. Na popisu dopuštenih ostaje vani dok je netko ne doda, a na popisu zabranjenih pridružuje se tunelu prema zadanim postavkama.

Upravljane konfiguracije izlažu isti izbor pod različitim imenima ključeva, a neke konzole opisuju ga kao način rada VPN-a po aplikaciji, a ne kao popis. Ponašanje se ipak svodi na ta dva poziva, pa pratite postavku natrag do popisa paketa umjesto da vjerujete oznaci. Ako se oznaka i popis razilaze, popis pobjeđuje.

Slijedite UID pravilo do tablice tunela

Android svakoj aplikaciji daje vlastiti Linux korisnički ID, a VPN servis instalira pravila politike koja odgovaraju rasponima UID-a. Odgovarajući promet šalje se u tablicu usmjeravanja čija zadana ruta pokazuje na tun uređaj. Broj tablice dodjeljuje se po VPN instanci, pa se mijenja nakon ponovnog spajanja ili nakon stvaranja drugog VPN profila.

Izlaz pravila je karta. Svaki red imenuje tablicu pretraživanja, a ta tablica drži zadanu rutu koja odlučuje ulaze li odgovarajući paketi u tunel.

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

Prvo pokrenite treću naredbu da dobijete UID, zatim nađite pravilo čiji raspon ga sadrži. To pravilo pokazuje na broj tablice, a ip route show table <n> s tim brojem pokazuje postoji li zadana ruta kroz tun uređaj. Ako tablica nema zadanu rutu, aplikacija je odabrana ali nema put, što je druga vrsta kvara.

Ove naredbe traže build koji se može otklanjati pogreške ili uređaj na kojem adb shell može čitati stanje mreže. Na proizvodnom telefonu upravitelj paketa ipak odgovara, ali pregled usmjeravanja može biti odbijen, pa zabilježite što možete i ostatak tretirajte kao nepotvrđen.

Ruta traži prefiks, a ne aplikaciju

Builder.addRoute traži prefikse odredišta za tunel. Profil koji dodaje samo 10.0.0.0/8 šalje taj prefiks kroz tunel i ostavlja svako drugo odredište na fizičkom putu. To je obično razdvojeno tuneliranje i neovisno je o tome koje su aplikacije pravila odabrala.

Konfiguracija koju gura poslužitelj preslikava isti model. Pojedinačna guranja ruta dodaju prefikse, dok redirect-gateway direktiva zamjenjuje zadanu rutu i hvata sve za aplikacije koje tunel pokriva. Uklanjanje te direktive može smanjiti radni tunel na jednu podmrežu bez ikakve promjene na uređaju.

Gurnuta ruta s neuobičajenim gatewayom ili metričkim kvalifikatorom također se možda neće instalirati. Preferirajte običan oblik prefiksa i pustite poslužitelju da se bavi prosljeđivanjem i NAT-om.

Pročitajte presjek prije nego promijenite postavku

Tunel nosi presjek pokrivenih procesa i traženih odredišta. Pokrivena aplikacija koja traži adresu izvan objavljenih prefiksa izlazi fizičkom mrežom. Zabranjeni paket ostaje vani čak i kada traži adresu unutar tih prefiksa. Nijedan slučaj nije greška; oba su dvije politike koje rade svoj posao.

VPN po aplikaciji može i povezanu aplikaciju ostaviti bez veze. Kada je on-demand isključen i tunel ne radi, aplikacija ostaje vezana za VPN po aplikaciji i nema rezervni put, što izgleda kao pokvarena aplikacija, a ne kao stanje politike. Uključivanje on-demand-a ili uklanjanje veze kroz upravljanje to mijenja.

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

Dijagnosticirajte jednu os odjednom. Prvo potvrdite dopuštanje ili zabranu, drugo pročitajte instalirana UID pravila i tablice, a na kraju testirajte drugu aplikaciju prema istom odredištu. Druga aplikacija razdvaja odabir procesa od odabira odredišta u jednom zahtjevu.

Zapišite rezultat kao aplikacija, odredište i broj tablice. Taj trojac je ono što sljedeća promjena mora sačuvati.

Povezani članci