Mac VPN hænger på »Afbryder«: hvad der reelt kører
Afbrydelse er en overgang, ikke en stoppet tunnel. Undersøg hvilken komponent der ejer nedbrydningen, læs ruter og DNS, og spring brede procesdrab over.
»Afbryder« er en tilstand, klienten rapporterer, mens den bryder en tunnel ned, ikke en dom om, at trafikken er stoppet. På en Mac forløber den nedbrydning som en kort sekvens, og etiketten skifter først, når den komponent, der ejer forbindelsen, melder tilbage. Når et trin venter på en hjælper, et plugin eller en politikbeslutning, kan etiketten blive stående, efter at interfacet er væk, eller tunnelen kan fortsætte med at videresende, mens menuen stadig viser den. Behandl teksten som »nedbrydning i gang, udfald ukendt« og find ud af, hvilken halvdel der er sand.
To fejl ser ens ud fra menulinjen og kræver modsatte reaktioner. I den ene bærer tunnelen stadig pakker, og kun visningen er forældet. I den anden er tunnelen væk, men en særskilt politik holder trafikken blokeret, hvilket ofte er med vilje. Ruter og DNS-tilstand skiller dem hurtigere end nogen menuinteraktion.
Hvad etiketten følger
En VPN-klient holder en lille tilstandsmaskine, og menulinjen er en projektion af den. For en forbindelse, som macOS selv styrer, sidder maskinen i systemets VPN-rammeværk. For en app-styret tunnel sidder den i appen og dens privilegerede hjælper. Det sidste trin i en stop er ikke at lukke en socket. Det er at frigive det, der fik tunnelen til at virke: utun-interfacet, ruterne der pegede på det, resolverposterne som klienten indsatte, og enhver firewallregel eller politik, der blokerede trafik, mens der var forbindelse.
De trin er adskilte, så et stop kan gå i stå på et af dem. En hjælper, der holder op med at svare, en rute som et andet interface også gør krav på, eller en resolverpost, som en anden profil ejer, kan alle efterlade klienten ventende. Etiketten er en rapport om klientens egen fremdrift, hvilket gør den autoritativ om hensigten og upålidelig om netværket.
Find den komponent, der ejer forbindelsen
For native konfigurationer udskriver scutil --nc list de tjenester, systemet kender, og deres status, og scutil --nc status "Work VPN" giver detaljer for én tjeneste. En tunnel, der holdes af en tredjepartsapp, vises måske slet ikke på den liste, så et tomt resultat er ikke bevis for, at intet er forbundet.
Når profilen tilhører en app, stol på dens statusvisning og dens dokumenterede »Afbryd«-kontrol. At lukke vinduet er ikke en stopanmodning, hvis en baggrundshjælper ejer tunnelen; ikonet forsvinder, og hjælperen holder interfacet i live. Apples VPN-indstillingsreference dækker de native kontroller og hvor administrerede indstillinger kommer fra.
Læs interfaces, ruter og DNS
Tre kontroller besvarer det meste af spørgsmålet uden at røre forbindelsen. Det er vigtigt at fortolke dem sammen, fordi hver enkelt alene er misvisende.
scutil --nc list
netstat -rn -f inet | head -20
ifconfig | grep -A 3 '^utun'
scutil --dns | head -30
- utun-interface til stede, standard- eller delt rute gennem det, resolver peger på udbyderen: tunnelen er stadig oppe, og etiketten er forældet.
- ingen utun, almindelig standardrute, DNS fra DHCP, ingen internet: en politik, der blokerer ved afbrydelse, gør sit arbejde.
- ingen utun, ingen rute, resolver peger stadig på udbyderen: nedbrydningen stoppede halvvejs, og DNS er resten, der skal ryddes.
Send derefter én anmodning til en intern vært, som kun bør svare gennem tunnelen, og én til en offentlig vært. Rækkevidde skiller politik fra resttilstand uden at gøre kontrollen til en måleøvelse. Gem fjernarbejde først, hvis vejen stadig svarer, og sørg for en anden indgang, før du ændrer netværk på en maskine, du administrerer eksternt.
Hvorfor brede drab og sletning af profilen vildleder
Procesnavne som pppd, racoon og configd tilhører bestemte implementeringer. At dræbe dem kan påvirke andre forbindelser, efterlader ruter og utun-interfaces, og giver dig ingen registrering af, hvilket trin der sad fast. Et gammelt procesnavn er heller ikke bevis for, at det ejer den aktuelle profil.
At slette og genskabe profilen er en større ændring end at rydde en fastlåst overgang. Den kan kaste administrerede indstillinger og lokalt identitetsmateriale væk uden at forklare, hvad der svigtede, og på en Mac under opsyn bliver den måske blot gendannet. Gem fjernelse til en konfiguration, der virkelig er forældet, og diagnosticer i stedet overgangen.
En stopsekvens, der efterlader et spor
Rækkefølgen nedenfor lader forbindelsens egne kontroller styre og producerer en registrering, hvis fastlåsningen vender tilbage. Den forhindrer dig også i at gøre et visningsproblem til en netværksændring.
- Gem fjernarbejde, og bekræft, at du kan nå Mac'en på en anden måde, hvis den er ekstern.
- Notér klientens navn, version og profil. Optag et kort vindue med
log show --last 5m --predicate 'subsystem == "com.apple.networkextension"'; ældre udgivelser gemmer mindre historik, så kør det hurtigt efter fastlåsningen. - Brug den dokumenterede »Afbryd«-kontrol, vent, og gentag derefter interface- og rutekontrollerne.
- Hvis etiketten er forældet, men tunnelen er nede, lad den være og lad klienten opdatere i stedet for at tvinge processer.
- Hvis nedbrydningen virkelig sad fast, genstart klienten, og planlæg derefter en genstart af Mac'en, når arbejdet er gemt. Administrerede maskiner kræver administratorproceduren.
Efter genopretning skal du bekræfte, at den almindelige standardrute og DHCP-resolveren er tilbage, og at blokeret trafik enten er genoprettet eller stadig blokeret med vilje. Notér profilen og klientversionen sammen med symptomet, så næste forekomst starter med bevis i stedet for et gæt fra menulinjen.