Negdje u skripti za objavljivanje postoji provjera je li tunel aktivan prije nego počne kopiranje. Dostupna su tri odgovora i oni ne znače isto: stanje usluge koje prijavljuje scutil, ruta koju je odabralo jezgro i to da li druga strana zaista odgovara. Njihovo poređenje je razlika između provjere koja predviđa kopiranje i one koja samo ukrašava dnevnik.

Tri odgovora na pitanje je li VPN aktivan

Stanje usluge je činjenica kontrolne ravni. macOS zna da je konfiguracija povezana jer je to rekla njena klijentska aplikacija. Ruta je činjenica podatkovne ravni: jezgro će poslati ovo odredište kroz taj interfejs. Dosegljivost je činjenica s kraja na kraj i može pasti iz razloga koje nijedno od druga dva ne vidi.

SignalAnswersBlind spot
scutil --nc statusIs the service connected?Third-party clients, wrong routes
route -n getWhere would this go?The peer may be down
A request to the far sideDoes it work now?Slow, and it changes state

Korisna provjera spaja prva dva i koristi treće kao potvrdu da druga dva nisu lagala. Bilo koje samo za sebe je nagađanje s vremenskom oznakom.

Čitajte identifikator, ne prikazano ime

scutil --nc list
scutil --nc status "Office"

Spisak ispisuje jedan red po usluzi, a svaki red nosi stanje u zagradama, zatim identifikator usluge, tip i prikazano ime. Pišite skriptu prema identifikatoru, jer prikazano ime je ono što je neko otipkao u Sistemskim postavkama i može se promijeniti bez najave. Komanda za status ispisuje jednu riječ, a zatim statistiku za neke tipove usluga; upoređujte tu prvu riječ umjesto da tražite ime u cijelom izlazu, koje se pojavljuje i drugdje.

Pokretanje usluge može izazvati zahtjev za autorizaciju ili biti potpuno odbijeno kada se profilom upravlja. To odbijanje nije kvar tunela; to je izjava o politici ko smije da ga podigne.

Klijent treće strane skriva se od spiska

Prazan spisak ne znači da VPN-a nema. Ovdje se pojavljuju konfiguracije napravljene unutar sistemskih mrežnih postavki; klijent dobavljača, profil za upravljanje ili aplikacija treće strane može držati aktivan tunel koji ova komanda nikad ne vidi. Njegov vlastiti alat je autoritet za njegovu vlastitu uslugu. Pitati scutil o klijentu koji se nikad nije registrirao kod njega vraća ništa, a ništa nije isti odgovor kao „isključeno“.

Kada je spisak prazan ali je saobraćaj očigledno šifrovan, tražite umjesto toga interfejs: uređaj utun ili ppp s adresom u očekivanom opsegu dokaz je da je nešto uspostavilo tunel. To je slabiji signal od stanja usluge, pa ga spojite s provjerom rute umjesto da interfejs smatrate dokazom identiteta. Nekoliko klijenata može napraviti nekoliko takvih interfejsa, a samo jedan od njih pripada tunelu koji ste mislili.

Status nije rutiranje

Povezana usluga kaže da tunel postoji. Ne kaže da vaše odredište ide kroz njega. Pročitajte adrese, pa pitajte jezgro direktno:

ifconfig | grep -A4 utun
netstat -rn -f inet
route -n get 10.40.0.20

Klijent punog tunela instalira zadanu rutu kroz tunel; klijent podijeljenog tunela instalira određene privatne prefikse. Oba prijavljuju Connected, a skripta koja provjerava samo status rado će otići pogrešnim putem. Zaustavljanje tunela ne uklanja nužno rute koje je instalirao drugi klijent, a to je jedan od načina da mašina istovremeno ima povezanu uslugu i zastarjelu rutu. Gledajte odredište koje vam je važno, a ne cijelu tabelu ruta.

Imena su zaseban problem

Druge mašine ne mogu doći do Mac-a po imenu dok njegova adresa radi, i to se prijavljuje kao kvar VPN-a. Lokalno ime hosta, ime hosta i DNS zapis tri su različite stvari. scutil --get LocalHostName prikazuje Bonjour ime; sudo scutil --set HostName mac-office postavlja ime koje sistem prijavljuje.

Nijedna postavka ne stvara zapis u uredskoj zoni. Ako drugi hostovi moraju razriješiti ime kroz DNS, vlasnik zone ga mora dodati, ili skripta treba koristiti adresu. Postavljanje stabilnog imena čini objave dosljednim; ono ne tjera resolver da odgovori.

Zapišite identifikator usluge i očekivani oblik rute zajedno u skriptu i provjerite oboje prije kopiranja. Tunel koji je aktivan i rutiran na pogrešan način pada isto kao da tunela nema, a linija dnevnika koja kaže Connected poslat će sljedeću osobu da traži na pogrešnom mjestu.

Povezani članci