Statusi i VPN-së në macOS nga terminali: scutil, rrugë apo ping
Gjendja e shërbimit, rruga në kernel dhe një kërkesë e vërtetë u përgjigjen tre pyetjeve të ndryshme. Shkruani skriptin sipas identifikuesit të shërbimit dhe kontrolloni edhe rrugën.
Diku në një skript vendosjeje ka një kontroll nëse tuneli është aktiv përpara se të fillojë kopjimi. Janë të disponueshme tre përgjigje dhe ato nuk nënkuptojnë të njëjtën gjë: gjendja e shërbimit që raporton scutil, rruga që zgjodhi kerneli dhe nëse ana tjetër përgjigjet vërtet. Krahasimi i tyre është dallimi midis një kontrolli që parashikon kopjimin dhe një kontrolli që vetëm zbukurdon regjistrin.
Tre përgjigje për pyetjen nëse VPN është aktiv
Gjendja e shërbimit është një fakt i planit të kontrollit. macOS e di që një konfigurim është i lidhur, sepse procesi i klientit të tij e tha. Rruga është një fakt i planit të të dhënave: kerneli do ta dërgojë këtë destinacion përmes atij ndërfaqeje. Arritshmëria është një fakt skaji në skaj dhe mund të dështojë për arsye që asnjë nga të tjerat dy nuk i sheh.
| Signal | Answers | Blind spot |
|---|---|---|
scutil --nc status | Is the service connected? | Third-party clients, wrong routes |
route -n get | Where would this go? | The peer may be down |
| A request to the far side | Does it work now? | Slow, and it changes state |
Një kontroll i dobishëm kombinon dy të parat dhe përdor të tretën si konfirmim që dy të parat nuk gënjyen. Secili vetëm është një hamendje me vulë kohe.
Lexoni identifikuesin, jo emrin e shfaqur
scutil --nc list
scutil --nc status "Office"
Lista shtyp një rresht për çdo shërbim dhe çdo rresht mban një gjendje në kllapa, pastaj identifikuesin e shërbimit, llojin dhe emrin e shfaqur. Shkruani skriptin sipas identifikuesit, sepse emri i shfaqur është ai që dikush shtypi në Cilësimet e Sistemit dhe mund të ndryshojë pa paralajmërim. Komanda e statusit shtyp një fjalë të vetme dhe, për disa lloje shërbimesh, statistika pas saj; krahasoni atë fjalën e parë në vend që të kërkoni emrin në të gjithë daljen, i cili shfaqet edhe diku tjetër.
Nisja e një shërbimi mund të nxisë një kërkesë autorizimi ose të refuzohet drejtpërdrejt kur profili është i menaxhuar. Ai refuzim nuk është difekt i tunelit; është një deklaratë politike për atë se kush mund ta ngrejë atë.
Një klient i palës së tretë fshihet nga lista
Një listë bosh nuk do të thotë se nuk ka VPN. Konfigurimet e krijuara në cilësimet e rrjetit të sistemit shfaqen këtu; një klient i furnizuesit, një profil menaxhimi ose një aplikacion i palës së tretë mund të mbajë një tunel aktiv që kjo komandë nuk e sheh kurrë. Mjeti i vetë është autoriteti për shërbimin e vetë. Të pyesësh scutil për një klient që nuk është regjistruar kurrë në të kthen asgjë, dhe asgjë nuk është e njëjta përgjigje si i shkëputur.
Kur lista është bosh, por trafiku është qartësisht i kriptuar, kërkoni ndërfaqen: një pajisje utun ose ppp me një adresë në intervalin e pritur është provë se diçka vendosi një tunel. Ky është një sinjal më i dobët se gjendja e shërbimit, prandaj kombinoni atë me një kontroll të rrugës në vend që ta trajtoni ndërfaqen si provë identiteti. Disa klientë mund të krijojnë disa ndërfaqe të tilla dhe vetëm njëra prej tyre i përket tunelit që kishit ndërmend.
Statusi nuk është rrugëzim
Një shërbim i lidhur thotë se tuneli ekziston. Nuk thotë se destinacioni juaj e përdor atë. Lexoni adresat, pastaj pyesni kernelin drejtpërdrejt:
ifconfig | grep -A4 utun
netstat -rn -f inet
route -n get 10.40.0.20
Një klient me tunel të plotë instalon një rrugë të paracaktuar përmes tunelit; një klient me tunel të ndarë instalon parashtesa private specifike. Të dy raportojnë Connected, dhe një skript që kontrollon vetëm statusin do të ecë me kënaqësi në rrugën e gabuar. Ndalimi i një tuneli nuk i heq domosdoshmërisht rrugët që instaloi një klient tjetër, dhe kjo është një nga mënyrat se si një makinë përfundon njëkohësisht me një shërbim të lidhur dhe një rrugë të vjetruar. Shikoni destinacionin që ju intereson, jo të gjithë tabelën e rrugëve.
Emërtimi është një problem i veçantë
Makinat e tjera nuk e arrijnë Mac-un me emër ndërsa adresa e tij funksionon, dhe kjo raportohet si defekt i VPN-së. Emri lokal i hostit, emri i hostit dhe regjistrimi DNS janë tre gjëra të ndryshme. scutil --get LocalHostName shfaq emrin Bonjour; sudo scutil --set HostName mac-office vendos emrin që raporton sistemi.
Asnjë nga cilësimet nuk krijon një regjistrim në zonën e zyrës. Nëse hostet e tjerë duhet ta zgjidhin emrin përmes DNS, pronari i zonës duhet ta shtojë, ose skripti duhet të përdorë adresën në vend të tij. Vendosja e një emri të qëndrueshëm i bën njoftimet konsistente; nuk e bën zgjidhësin të përgjigjet.
Regjistroni së bashku në skript identifikuesin e shërbimit dhe formën e pritur të rrugës, dhe kontrolloni të dyja përpara kopjimit. Një tunel aktiv por i drejtuar në anën e gabuar dështon saktësisht si asnjë tunel, dhe rreshti i regjistrit që thotë Connected do ta dërgojë personin tjetër të kërkojë në vendin e gabuar.