Paketin poissulkeminen on reititysohje, ei esto, joten sivut, jotka latautuvat VPN:n yhdistämisen jälkeen, ovat odotettuja eivätkä todiste viasta. Poissulkeminen poistaa sovelluksen tunnelista estämisen sijaan, ja tavallinen verkko kuljettaa sen liikennettä. Tässä kohtaavat kaksi erillistä käytäntöä: toinen valitsee prosessit, toinen valitsee kohteet. Niiden lukeminen tässä järjestyksessä selittää, miksi yhdistetty kuvake ja toimiva sovellus eivät ole ristiriita.

Miksi poissulkeminen pitää verkon avoimena

VpnService.Builder hyväksyy joko sallitun luettelon tai kielletyn luettelon, ei koskaan molempia. Vain sallitun luettelon paketit reititetään tunnelin kautta. Kielletty luettelo kääntää tämän: jokainen paketti paitsi luetellut käyttää tunnelia, ja luetellut pitävät fyysisen polun. Luettelematon paketti on sallitun luettelon alla myös tunnelin ulkopuolella, joten poissulkeminen on normaalitila useimmille sovelluksille siinä tilassa.

Tämä tekee paikallisesta kieltomerkinnästä reitityspäätöksen, ei palomuurisäännön. Jos vaatimuksena on estää sovellusta saavuttamasta isäntää, tunnelin on katettava se ja palvelimen tai paikallisen käytännön on hylättävä liikenne. Sovelluksen poistaminen tunnelista muuttaa vain sitä, mikä liitäntä kuljettaa sen paketteja.

Play Store -tapaus on tavallinen tarkoituksellinen esimerkki. Kaupan paketin poissulkeminen antaa latausten käyttää taustayhteyttä, kun VPN:n ulostulo häiritsee siirtoja, ja osoittaa, että poissulkeminen tarkoittaa ohitusta, ei estoa.

Yksi profiili, yksi luettelo

Rakentaja heittää poikkeuksen, jos molempia kutsuja käytetään, joten edessäsi oleva profiili on joko sallittu tai kielletty luettelo. Tämä yksi tosiasia määrää, miten jokaista myöhempää havaintoa luetaan. Tarkista koodi tai hallittu määritys ennen reititystaulukkoa, koska luettelo päättää, mitä muu tuloste tarkoittaa. Hybridiprofiili ei ole tila, jota voi katsella.

Ero ennustaa myös, mitä äskettäin asennettu sovellus tekee. Sallitun luettelon alla se pysyy ulkona, kunnes joku lisää sen, kun taas kielletyn luettelon alla se liittyy tunneliin oletuksena.

Hallitut määritykset tarjoavat saman valinnan eri avainnimillä, ja jotkin konsolit kuvaavat sitä sovelluskohtaiseksi VPN-tilaksi luettelon sijaan. Käyttäytyminen palautuu silti noihin kahteen kutsuun, joten jäljitä asetus takaisin pakettiluetteloon sen sijaan, että luottaisit merkintään. Jos merkintä ja luettelo ovat eri mieltä, luettelo voittaa.

Seuraa UID-sääntöä tunnelin taulukkoon

Android antaa jokaiselle sovellukselle oman Linux-käyttäjätunnuksensa, ja VPN-palvelu asentaa käytäntösäännöt, jotka vastaavat UID-välejä. Vastaava liikenne lähetetään reititystaulukkoon, jonka oletusreitti osoittaa tun-laitteeseen. Taulukon numero jaetaan VPN-esiintymää kohden, joten se muuttuu uudelleenyhdistämisen tai toisen VPN-profiilin luomisen jälkeen.

Sääntöjen tuloste on kartta. Jokainen rivi nimeää hakutaulukon, ja se taulukko pitää oletusreitin, joka päättää, tulevatko vastaavat paketit tunneliin.

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

Suorita ensin kolmas komento saadaksesi UID:n ja etsi sitten sääntö, jonka väli sisältää sen. Se sääntö osoittaa taulukon numeroon, ja ip route show table <n> tällä numerolla näkyy, onko tun-laitteen kautta oletusreittiä. Jos taulukossa ei ole oletusreittiä, sovellus on valittu mutta sillä ei ole polkua, mikä on eri vika.

Nämä komennot vaativat virheenkorjattavan koontiversion tai laitteen, jossa adb shell voi lukea verkon tilan. Tuotantopuhelimessa paketinhallinta vastaa yhä, mutta reitityksen tarkastus voidaan hylätä, joten tallenna mitä voit ja käsittele loput vahvistamattomana.

Reitti vaatii etuliitteen, ei sovellusta

Builder.addRoute vaatii kohde-etuliitteitä tunnelille. Profiili, joka lisää vain 10.0.0.0/8 lähettää kyseisen etuliitteen tunnelin kautta ja jättää kaikki muut kohteet fyysiselle polulle. Se on tavallista jaettua tunnelointia, eikä se riipu siitä, mitkä sovellukset säännöt valitsivat.

Palvelimen työntämä määritys heijastaa samaa mallia. Yksittäiset reittityönnöt lisäävät etuliitteitä, kun taas redirect-gateway-direktiivi korvaa oletusreitin ja kaappaa kaiken niille sovelluksille, jotka tunneli kattaa. Sen direktiivin poistaminen voi kutistaa toimivan tunnelin yhdeksi aliverkoksi ilman mitään muutosta laitteessa.

Työnnetty reitti, jolla on epätavallinen yhdyskäytävä tai metrinen tarkenne, ei välttämättä myöskään asennu. Suosi tavallista etuliitemuotoa ja jätä välitys ja NAT palvelimelle.

Lue leikkaus ennen asetuksen muuttamista

Tunneli kuljettaa katettujen prosessien ja vaadittujen kohteiden leikkauksen. Katettu sovellus, joka pyytää osoitetta julkaistujen etuliitteiden ulkopuolelta, poistuu fyysisen verkon kautta. Kielletty paketti pysyy ulkona, vaikka se pyytäisi osoitetta näiden etuliitteiden sisältä. Kumpikaan tapaus ei ole vika; molemmat ovat kaksi käytäntöä tekemässä työtään.

Sovelluskohtainen VPN voi jättää liitetyn sovelluksen myös ilman yhteyttä. Kun on-demand on pois päältä ja tunneli on alhaalla, sovellus pysyy sidottuna sovelluskohtaiseen VPN:hen eikä sillä ole varapolkua, mikä näyttää rikkinäiseltä sovellukselta eikä käytännön tilalta. on-demandin käyttöönotto tai liitoksen poistaminen hallinnan kautta muuttaa sitä.

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

Diagnosoi yksi akseli kerrallaan. Vahvista ensin salliminen tai kieltäminen, lue toiseksi asennetut UID-säännöt ja taulukot ja testaa viimeiseksi toista sovellusta samaan kohteeseen. Toinen sovellus erottaa prosessin valinnan kohteen valinnasta yhdessä pyynnössä.

Kirjoita tulos muistiin sovelluksena, kohteena ja taulukon numerona. Juuri se monikko on säilytettävä seuraavassa muutoksessa.

Aiheeseen liittyvät artikkelit