Puhelin näyttää lentokoneen kuvakkeen, VPN-asiakas on ollut Connecting-tilassa kaksi minuuttia ja profiili on oikein. Se toimi tunti sitten samassa rakennuksessa. Mikään ei ole rikki: VPN on yhteys, jota toinen verkko kuljettaa, ja lentotila poisti juuri sen verkon, joka sitä kuljetti. Asiakas yrittää uudelleen, koska sitä se tekee ilman yhteyttä ylös.

Hämmentävää on, että lentokoneen symboli ei kerro, onko Wi-Fi saatavilla, eikä Connecting kerro, todennetaanko asiakasta vai odotetaanko vain. Erota nämä kaksi lukemaa, niin diagnoosi kestää minuutin.

Lentokoneen symboli ei ole radioraportti

Tuetuissa Android-laitteissa Wi-Fi ja Bluetooth voivat pysyä päällä lentotilassa, ja laite muistaa viimeksi tekemäsi valinnan. Googlen ohje Pixelin lentotilasta kuvaa juuri tätä käyttäytymistä. Kuvake voi siis tarkoittaa, että matkapuhelinverkko on pois päältä, eikä muuta.

Tarkista todellinen tila glyyfin sijaan. adb shell settings get global airplane_mode_on palauttaa 0 tai 1 itse tilalle, ja adb shell dumpsys connectivity luettelee verkot, jotka laitteella on tällä hetkellä, sekä niiden vahvistustilan. Nämä kaksi tulostetta yhdessä vastaavat kysymykseen, johon kuvake ei pysty.

Jos Wi-Fi on pois päältä tai päällä mutta liittymättä mihinkään, reittiä VPN:n päätepisteeseen ei ole, eikä mikään määrä uudelleenyhdistämistä luo sitä. Tämä tapaus kannattaa sulkea pois ensin, koska se on ainoa, jossa oikea korjaus on VPN-sovelluksen ulkopuolella.

Mitä Connecting todella tarkoittaa

Asiakas voi pitää tallennettua profiilia, näyttää sen nimen ja pyörittää osoitinta olematta yhteydessä mihinkään. Kokoonpano on paikallinen. Tunnelin pystyttäminen vaatii tavoitettavan palvelimen, suoritetun kättelyn ja liittymän, jonka kautta reitittää. Vain viimeinen osa tarvitsee toimivan verkon, minkä vuoksi kaksi ensimmäistä voivat näyttää onnistuneilta radion ollessa pois.

Siksi osoitin sopii ainakin kolmeen eri tilanteeseen: ei yhteyttä ylös lainkaan, yhteys ylös ei tavoita päätepistettä, ja yhteys ylös tavoittaa sen mutta todentaminen epäonnistuu. Ne näyttävät ruudulla samalta ja lokissa täysin erilaisilta. Siksi ensimmäinen hyödyllinen artefakti näissä tapauksissa on loki, ei uusi yritys.

Androidin oma VPN-dokumentaatio vetää saman rajan yhteyden muodostamisen ja erillisten aina päällä- ja estokäytäntöjen välille. Tämä erottelu on syy siihen, että puhelin voi näyttää suojatulta ollessaan offline ja silti olla ilman tunnelia.

Neljä tilaa, jotka kannattaa erottaa

Alla olevat neljä tilaa kannattaa nimetä, koska ruutu näyttää ne samanlaisina.

StateWhat you will seeWhat to do
Airplane mode, Wi-Fi offNo networks in dumpsys, VPN retries foreverTurn Wi-Fi on, or accept that the tunnel cannot exist
Wi-Fi on, not associatedInterface exists, no default networkJoin the access point
Associated, not validatedNetwork listed, captive-portal flag setComplete the portal sign-in, then reconnect
Validated, tunnel downInternet works, VPN fails or blocksDebug the tunnel, not the radio

Kolmas rivi nappaa useimmat ihmiset hotelleissa ja lentoasemilla. Liittyminen ei ole sisäänpääsy: portaali, joka ei ole päästänyt puhelinta läpi, ottaa Wi-Fi-salasanan mielellään vastaan ja kieltäytyy sitten päästämästä liikennettä VPN:n päätepisteeseen. Kirjautuminen ensin selaimen kautta tunnelin ollessa pois on yleensä ainoa tie läpi.

Miksi estäminen saa sen näyttämään pahemmalta

Jos sekä aina päällä oleva VPN että ilman VPN:ää tapahtuvien yhteyksien esto ovat käytössä, jokainen katettu sovellus estetään aina, kun tunneli ei ole ylhäällä. Se on ominaisuus töissä, ei toinen vika. Oire muuttuu yhden sovelluksen epäonnistumisesta kaiken epäonnistumiseen, mikä luetaan paljon suuremmaksi ongelmaksi.

Se selittää myös järjestyksen, jonka ihmiset lukevat väärin: lentotila päällä, ei yhteyttä ylös, sovellukset estetty, VPN sanoo connecting. Esto oli käytäntö tekemässä tehtäväänsä. Käytännön sammuttaminen yhteyden ylös testaamiseksi poistaa suojan, jota todennäköisesti halusit, eikä opeta sinulle mitään.

Tarkista sen sijaan laajuus. Mitkä sovellukset on katettu, mitkä jätetty pois ja onko profiili käyttäjäkohtainen vai laitekohtainen. Tehtävä, joka käynnistää VPN-sovelluksen heti kun Wi-Fi ilmestyy, on liipaisin, ei tae siitä, ettei yhtään pakettia lähtenyt ennen sen suorittamista.

Diagnoosijärjestys, joka lopettaa arvailun

Työskentele alhaalta ylös. Vahvista tila, vahvista että verkko on olemassa, että se on vahvistettu, että se tavoittaa jotain paikallisen aliverkon ulkopuolella, ja vasta sitten katso asiakasta. adb shell ping -c 3 1.1.1.1 on karkea testi, mutta se erottaa puuttuvan reitin reitistä, joka on olemassa tunnelin ollessa tyytymätön.

Jos ping epäonnistuu verkon ollessa lueteltuna, ongelma on VPN:n yläpuolella eikä mikään asiakkaan asetus korjaa sitä. Jos ping onnistuu ja tunneli ei silti muodostu, tallenna asiakkaan loki juuri sillä hetkellä: virhe erottaa aikakatkaisun todentamisen hylkäämisestä, eikä näillä kahdella ole mitään yhteistä.

Lopeta palauttamalla aiottu tila: Wi-Fi sallittu lentotilassa, jos se on tavanomainen asetuksesi, portaali suoritettu ja estokäytäntö jälleen päällä. Yhdistä sitten kerran uudelleen ja varmista, että tunneli nousee itsestään, sillä kokoonpano, joka toimii vain käsin tehtyjen yritysten jälkeen, epäonnistuu taas seuraavalla käynnistyksellä.

Aiheeseen liittyvät artikkelit