Mac-VPN heng på «Koplar frå»: kva som faktisk køyrer
Fråkopling er ein overgang, ikkje ein stoppa tunnel. Sjekk kva komponent som eig nedrivinga, les ruter og DNS, og hopp over breitt prosessdrap.
«Koplar frå» er ein tilstand klienten rapporterer medan han riv ned ein tunnel, ikkje ein dom om at trafikken har stoppa. På ein Mac går den nedrivinga som ein kort sekvens, og etiketten endrar seg først når komponenten som eig sambandet melder tilbake. Når eitt steg ventar på ein hjelpar, ein plugin eller ei avgjerd om politikk, kan etiketten bli ståande etter at grensesnittet er borte, eller tunnelen kan halde fram med å videresende medan menyen framleis viser han. Handsame teksten som «nedriving pågår, resultatet er ukjent» og finn ut kva halvdel som er sann.
To feil ser like ut frå menylinja og krev motsette reaksjonar. I den eine ber tunnelen framleis pakkar, og berre visninga er utdatert. I den andre er tunnelen borte, men ein eigen politikk held trafikken blokkert, noko som ofte er med vilje. Ruter og DNS-tilstand skil dei raskare enn noka menyehandtering.
Kva etiketten følgjer
Ein VPN-klient held ein liten tilstandsmaskin, og menylinja er ein projeksjon av han. For eit samband som macOS sjølv styrer, sit maskinen i VPN-rammeverket til systemet. For ein app-styrt tunnel sit han i appen og i den privilegerte hjelparen hans. Det siste steget i ein stopp er ikkje å lukke ein socket. Det er å sleppe det som gjorde tunnelen funksjonsdyktig: utun-grensesnittet, rutene som peikte på det, oppføringane til oppløysaren som klienten la inn, og kvar brannmurregel eller politikk som blokkerte trafikk medan sambandet var oppe.
Desse stega er åtskilde, så ein stopp kan henge i kva som helst av dei. Ein hjelpar som sluttar å svare, ei rute som eit andre grensesnitt òg gjer krav på, eller ei oppføring i oppløysaren som ein annan profil eig, kan la klienten vente. Etiketten er ein rapport om framdrifta til klienten sjølv, noko som gjer han autoritativ om intensjonen og upåliteleg om nettet.
Finn komponenten som eig sambandet
For innebygde konfigurasjonar skriv scutil --nc list ut tenestene systemet kjenner og statusen deira, og scutil --nc status "Work VPN" gjev detaljar for éi teneste. Ein tunnel som ein tredjepartsapp held, blir kanskje ikkje vist i den lista i det heile, så eit tomt resultat er ikkje bevis for at ingenting er tilkopla.
Når profilen høyrer til ein app, stol på statusvisinga hans og den dokumenterte «Koplar frå»-kontrollen. Å lukke vindauget er ikkje ei stoppførespurnad om ein bakgrunnshjelpar eig tunnelen; ikonet forsvinn, og hjelparen held grensesnittet levande. Apples referanse for VPN-innstillingar dekkjer dei innebygde kontrollane og kvar styrte innstillingar kjem frå.
Les grensesnitt, ruter og DNS
Tre kontrollar svarar på det meste av spørsmålet utan å røre sambandet. Tolkninga av dei saman er det som tel, fordi kvar einskild åleine villeder.
scutil --nc list
netstat -rn -f inet | head -20
ifconfig | grep -A 3 '^utun'
scutil --dns | head -30
- utun-grensesnitt til stades, standard- eller delt rute gjennom det, oppløysar peikar på leverandøren: tunnelen er framleis oppe, og etiketten er utdatert.
- ingen utun, vanleg standardrute, DNS frå DHCP, ikkje internett: ein politikk som blokkerer ved fråkopling, gjer jobben sin.
- ingen utun, inga rute, oppløysar peikar framleis på leverandøren: nedrivinga stoppa halvvegs, og DNS er resten som må ryddast.
Send deretter éi førespurnad til ein intern vert som berre skal svare gjennom tunnelen, og éi til ein offentleg vert. Rekkevidd skil politikk frå resttilstand utan å gjere kontrollen om til ei måleøving. Lagre fjernarbeid først om vegen framleis svarar, og syrg for ein annan inngang før du endrar nettverket på ein maskin du styrer eksternt.
Kvifor breitt drap og sletting av profilen villeder
Prosessnamn som pppd, racoon og configd høyrer til bestemte implementasjonar. Å drepe dei kan påverke andre samband, etterlèt ruter og utun-grensesnitt, og gjev deg ingen oversikt over kva steg som hang. Eit gammalt prosessnamn er heller ikkje bevis for at det eig den gjeldande profilen.
Å slette og attopprette profilen er ei større endring enn å rydde ein fastlåst overgang. Det kan kaste styrte innstillingar og lokalt identitetsmateriale utan å forklare kva som feila, og på ein Mac under oppsyn blir han kanskje berre attoppretta. Spar slettinga til ein konfigurasjon som verkeleg er utdatert, og diagnostiser overgangen i staden.
Ein stoppsekvens som etterlèt spor
Rekkjefølgja nedanfor lèt dei eigne kontrollane til sambandet styre og lagar ei registrering om fastlåsinga kjem attende. Ho hindrar deg òg frå å gjere eit visingsproblem om til ei nettverksendring.
- Lagre fjernarbeid, og stadfest at du når Macen på ein annan måte om han er ekstern.
- Noter namnet på klienten, versjonen og profilen. Tak opp eit kort vindauge med
log show --last 5m --predicate 'subsystem == "com.apple.networkextension"'; eldre utgåver held mindre historikk, så køyr det rett etter fastlåsinga. - Bruk den dokumenterte «Koplar frå»-kontrollen, vent, og gjer deretter grensesnitt- og rutekontrollane på nytt.
- Om etiketten er utdatert, men tunnelen er nede, lat han stå og lat klienten oppdatere seg i staden for å tvinge prosessar.
- Om nedrivinga verkeleg hang, start klienten på nytt, og planlegg deretter ein omstart av Macen når arbeidet er lagra. Styrte maskinar treng prosedyren til administratoren.
Etter attoppretting, stadfest at den vanlege standardruta og DHCP-oppløysaren er attende, og at blokkert trafikk anten er attoppretta eller framleis blokkert med vilje. Noter profilen og klientversjonen saman med symptomet, slik at neste tilfelle startar med bevis i staden for ei gissing frå menylinja.