Android-skærmen for VPN viser én række med et navn, et nøgleikon og måske en altid-til-kontakt. Den viser sjældent endepunktet, rutepolitikken, DNS-serverne eller de legitimationsoplysninger, der får forbindelsen til at virke, fordi de i en app-baseret tunnel tilhører appen. Den praktiske konsekvens er et runbook-spørgsmål, ikke et filosofisk: før du redigerer en downloadet fil eller leder efter et centralt profilarkiv, skal du finde ud af, hvilken komponent der ejer den indstilling, du vil ændre.

Identificér først forbindelsestypen

Der er mindst tre ordninger på samme indstillingsskærm. En app kan bruge VpnService til at bygge et virtuelt interface og eje protokollen og den private konfiguration, herunder en lokal filtreringsapp uden fjernudgang. Android kan også klargøre en platform-IKEv2-profil via Ikev2VpnProfile, tilgængelig fra API 30, hvor platformen holder mere af profilen. Og en udbyderapp kan vise sin egen serverliste og sammensætte indstillingerne internt.

adb shell dumpsys connectivity | grep -i -A12 "VPN"
adb shell cmd connectivity list-owners 2>/dev/null || true

Den første kommando viser det aktive VPN-netværk og dets linkegenskaber, hvilket er den anvendte tilstand. Hvis rækken nævner en pakke, du genkender, så start med den apps egen profilvisning i stedet for systemskærmen.

Notér ejeren og profilens omfang

Skriv fire fakta ned, før du ændrer noget: den ejende pakke, om forbindelsen ligger i den personlige profil eller arbejdsprofilen, profilens eller forbindelsens navn, som appen viser det, og hvem der administrerer den. En enhedsejer kan klargøre en arbejdsprofil-VPN, som en bruger af den personlige profil ikke kan redigere, og den samme app installeret to gange giver dig to uafhængige ejere.

Dette trin forhindrer den mest almindelige spildte time, nemlig at redigere en profil, der ikke er den tilsluttede. Apps holder ofte flere profiler, og den aktive er en egenskab ved appen, ikke ved Android-rækken.

Sammenlign anmodet, modtaget og anvendt tilstand

Det er tre forskellige faser, og en uoverensstemmelse mellem dem fortæller dig, hvilken komponent du skal rette.

StageWhere to lookWhat it proves
RequestedThe app's profile editor or imported fileWhat the owner intends to use
ReceivedSanitized app log of server-supplied optionsWhat the peer actually pushed
AppliedLink properties and routes after connectWhat the device is really using

Den anvendte fase er den, du kan observere uden at stole på nogens log. Sammenlign DNS-serverne og ruterne i det aktive links egenskaber med dem, profilen påstår; hvis de afviger, har serveren sendt noget, eller appen har anvendt en politik, du ikke forventede.

adb shell ip addr show tun0
adb shell ip route show table all | head -40

Interface-navne er forskellige mellem apps, så list interfaceene først, og læs det, der dukkede op, da tunnelen blev forbundet. En rute, der findes i appens editor, men mangler her, blev aldrig anvendt; en rute, der er her, men mangler i editoren, kom fra et andet sted.

Redigér det artefakt, ejeren faktisk læser

For en importeret OpenVPN-profil holder appen normalt sin egen kopi. At redigere den oprindeligt downloadede fil senere ændrer ikke den næste forbindelse; brug appens dokumenterede editor, eller genimporter, og bekræft, hvilken profil der nu er aktiv. Det er forskellen mellem at ændre en fil og ændre en konfiguration.

Udbyderapps sammensætter ofte indstillinger fra en serverliste i stedet for at skrive en brugernredigerbar fil. Fraværet af en eksportknap er ikke bevis for, at VPN'en er falsk, og en eksporteret fil kan udelade enhedsbundne nøgler eller tilmeldingsmateriale, som en anden enhed ville have brug for. Behandl eksport og import som separate operationer med deres egne forudsætninger.

Skriv supportnoten uden at afsløre hemmeligheder

En nyttig note nævner den præcise app og profil, den indstilling, der ser forkert ud, og evidensen fra hver fase. For eksempel: denne profil modtager en privat DNS-adresse fra serveren, men den tilsigtede arbejdsapp kan ikke slå sin tjeneste op, og de anvendte linkegenskaber viser den resolver, mens profilets editor viser en anden.

Hold legitimationsoplysninger ude af noten. Det er ikke nødvendigt at roote enheden for at søge i appens private lager for at identificere ejeren, og en gættet sti til datamappen er ikke en understøttet grænseflade. Hvis svaret kræver bytes, som kun appen kan se, så bed ejeren om en diagnostisk eksport i stedet for at improvisere en.

Når arbejdet er færdigt, luk kredsen: bekræft det aktive profilnavn, læs den anvendte tilstand igen, og afbryd én gang for at verificere, at ændringen overlever en genopkobling. En indstilling, der kun findes i editoren, er ikke udrullet.

Relaterede artikler