Útsletten app dochs online? Regels per app en foar rûtes ferskille
In Android-app út in VPN útslute blokkearret dy net. Tastieningslisten, UID-beliedsregels en stjoerde rûtes bepale elk in oar part fan it paad.
In pakket útslute is in rûteynstruksje, gjin blokkade, dus de siden dy't lade nei't de VPN ferbynt binne ferwachte en gjin bewiis fan in flater. De útsluting hellet de app út de tunnel ynstee fan dy te blokkearjen, en it gewoane netwurk draacht it ferkear. Twa aparte beliedden komme hjir byinoar: de iene kiest prosessen, de oare kiest bestimmingen. Se yn dy folchoarder lêze ferklearret wêrom't in ferbûn ikoan en in wurkjende app gjin tsjinspraak binne.
Wêrom't in útsluting it netwurk iepen hâldt
VpnService.Builder akseptearret óf in tastieningslist óf in blokkearlist, nea beide. Pakketten op in tastieningslist wurde as iennichste troch de tunnel stjoerd. In blokkearlist keart dat om: elk pakket útsein de neamde brûkt de tunnel, en de neamde hâlde it fysike paad. In pakket dat net neamd is, is ûnder in tastieningslist ek bûten de tunnel, dus útsluting is de normale tastân foar de measte apps yn dy modus.
Dat makket in pleatslike blokkearynfier in rûtebeslissing, gjin firewallregel. As de eask is om in app te stopjen in host te berikken, moat de tunnel dy dekke en moat de server of in pleatslik belied it ferkear wegerje. In app út de tunnel helje feroaret allinnich hokker ynterface syn pakketten draacht.
It gefal Play Store is it gewoane bewuste foarbyld. De winkelapp útslute lit downloads de ûnderlizzende ferbining brûke as de VPN-útgong oerdrachten hindere, en it lit sjen dat útsluting omgong betsjut, net blokkade.
Ien profyl, ien list
De bouwer smyt in flater as beide oproppen brûkt wurde, dus it profyl foar jo is óf in tastieningslist óf in blokkearlist. Dat iene feit bepaalt hoe't elke lettere waarnimming lêzen wurde moat. Kontrolearje de koade of de behearde konfiguraasje foar de rûtetabel, want de list beslút wat de rest fan de útfier betsjut. In hybride profyl is gjin tastân dêr't jo nei sjen kinne.
It ferskil foarsiset ek wat in nij ynstallearre app docht. Under in tastieningslist bliuwt dy bûten oant immen him tafoeget, wylst er ûnder in blokkearlist standert by de tunnel komt.
Behearde konfiguraasjes biede deselde kar ûnder oare kaainammen, en guon konsoles beskriuwe it as per-app VPN-modus ynstee fan as in list. It gedrach komt dochs del op dy twa oproppen, dus folgje de ynstelling werom nei de pakketlist ynstee fan it label te fertrouwen. As it label en de list net oerienkomme, wint de list.
Folgje de UID-regel nei de tunneltabel
Android jout elke app syn eigen Linux-brûkers-ID, en de VPN-tsjinst ynstallearret beliedsregels dy't by UID-berikken passe. Passend ferkear wurdt nei in rûtetabel stjoerd wêrfan't de standertrûte nei it tun-apparaat wiist. It tafelnummer wurdt per VPN-eksimplaar tawiisd, dus it feroaret nei in werferbining of nei it meitsjen fan in twadde VPN-profyl.
De útfier fan de regels is de kaart. Eltse rigel neamt in syktabel, en dy tabel hâldt de standertrûte dy't beslút oft passende pakketten de tunnel yn komme.
adb shell ip rule show
adb shell ip route show table all
adb shell cmd package list packages -U | grep <package>
Rin earst it tredde kommando om de UID te krijen, sykje dan de regel wêrfan't it berik dy befettet. Dy regel wiist nei in tafelnummer, en ip route show table <n> mei dat nûmer lit sjen oft der in standertrûte troch it tun-apparaat is. Hat de tabel gjin standert, dan is de app keazen mar hat er gjin paad, wat in oare flater is.
Dizze kommando's freegje in debugbere build of in apparaat dêr't adb shell de netwurkstastân lêze kin. Op in produksjetillefoan antwurdet de pakketbehearder noch, mar de rûte-ynspeksje kin wegere wurde, dus fetsje wat jo kinne en behannelje de rest as net ferifiearre.
In rûte easket in foarheaksel, gjin app
Builder.addRoute easket bestimmingsfoarheaksels foar de tunnel. In profyl dat allinnich 10.0.0.0/8 tafoeget stjoert dat foarheaksel troch de tunnel en lit elke oare bestimming op it fysike paad. Dat is gewoane splitste tunnelearring, en it is ûnôfhinklik fan hokker apps de regels keazen hawwe.
Server-stjoerde konfiguraasje spegelet itselde model. Yndividuele rûtestjoeringen foegje foarheaksels ta, wylst in redirect-gateway-direktive de standertrûte ferfangt en alles fangt foar de apps dy't de tunnel dekt. It fuortheljen fan dy direktive kin in wurkjende tunnel krimpe ta ien subnet sûnder ienige feroaring op it apparaat.
In stjoerde rûte mei in ûngewoane gateway of metryske kwalifisearder kin ek mislearje te ynstallearjen. Ferkeas de gewoane foarheakselfoarm en lit de server trochstjoeren en NAT dwaan.
Lês de krusing foardat jo in ynstelling feroarje
De tunnel draacht de krusing fan 'e dekte prosessen en de easke bestimmingen. In dekte app dy't in adres bûten de publisearre foarheaksels freget, giet fuort oer it fysike netwurk. In útsletten pakket bliuwt bûten, sels as it in adres binnen dy foarheaksels freget. Gjin fan beide gefallen is in bug; beide binne de twa beliedden dy't har wurk dogge.
In per-app VPN kin in keppele app ek sûnder ferbining litte. As on-demand út is en de tunnel is del, bliuwt de app bûn oan 'e per-app VPN en hat er gjin reserve, wat der út sjocht as in stikken app ynstee fan in beliedstastân. on-demand ynskeakelje, of de keppeling fia behear fuorthelje, feroaret dat.
| 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 |
Diagnostisearje ien as tagelyk. Befestigje earst tastean of blokkearjen, lês twadde de ynstallearre UID-regels en tabellen, en test as lêste in twadde app tsjin deselde bestimming. De twadde app skiedt proseskar fan bestimmingskar yn ien oanfraach.
Skriuw it resultaat del as app, bestimming en tafelnummer. Krekt dat triple moat de folgjende feroaring behâlde.