Nekje v namestitveni skripti je preverjanje, ali je tunel aktiven, preden se začne kopiranje. Na voljo so trije odgovori in ne pomenijo istega: stanje storitve, ki ga poroča scutil, pot, ki jo je izbralo jedro, in ali se drugi konec res odzove. Njihova primerjava je razlika med preverjanjem, ki napove kopiranje, in tistim, ki samo krasi dnevnik.

Trije odgovori na vprašanje, ali je VPN aktiven

Stanje storitve je dejstvo krmilne ravnine. macOS ve, da je konfiguracija povezana, ker je tako rekel njen odjemalni proces. Pot je dejstvo podatkovne ravnine: jedro bo poslalo ta cilj skozi tisti vmesnik. Dosegljivost je dejstvo od konca do konca in lahko zataji zaradi razlogov, ki jih nobeno od drugih dveh 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

Koristno preverjanje združi prva dva in tretjega uporabi kot potrditev, da prva dva nista lagala. Vsak sam zase je ugibanje s časovnim žigom.

Berite identifikator, ne prikazanega imena

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

Seznam izpiše eno vrstico na storitev in vsaka vrstica vsebuje stanje v oklepaju, nato identifikator storitve, vrsto in prikazano ime. Skripto pišite glede na identifikator, ker je prikazano ime tisto, kar je nekdo vnesel v Sistemske nastavitve, in se lahko spremeni brez obvestila. Ukaz za stanje izpiše eno besedo, pri nekaterih vrstah storitev pa za njo statistiko; primerjajte to prvo besedo, namesto da bi ime iskali po celotnem izpisu, ki se pojavi tudi drugje.

Zagon storitve lahko sproži zahtevo za avtorizacijo ali je povsem zavrnjen, ko je profil upravljan. Ta zavrnitev ni okvara tunela; je izjava politike o tem, kdo ga sme dvigniti.

Odjemalec tretje strani se skriva pred seznamom

Prazen seznam ne pomeni, da VPN ni. Konfiguracije, ustvarjene v sistemskih omrežnih nastavitvah, se prikažejo tukaj; ponudnikov odjemalec, profil upravljanja ali aplikacija tretje strani lahko držijo aktiven tunel, ki ga ta ukaz nikoli ne vidi. Lastno orodje je avtoriteta za lastno storitev. Vprašanje scutil o odjemalcu, ki se pri njem ni nikoli registriral, vrne nič, in nič ni enak odgovor kot odklopljeno.

Ko je seznam prazen, a je promet očitno šifriran, poiščite vmesnik: naprava utun ali ppp z naslovom v pričakovanem obsegu je dokaz, da je nekaj vzpostavilo tunel. To je šibkejši signal od stanja storitve, zato ga povežite s preverjanjem poti, namesto da bi vmesnik obravnavali kot dokaz identitete. Več odjemalcev lahko ustvari več takih vmesnikov in samo eden od njih pripada tunelu, ki ste ga imeli v mislih.

Stanje ni usmerjanje

Povezana storitev pravi, da tunel obstaja. Ne pravi, da ga vaš cilj uporablja. Preberite naslove in nato vprašajte jedro neposredno:

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

Odjemalec polnega tunela namesti privzeto pot skozi tunel; odjemalec razdeljenega tunela namesti določene zasebne predpone. Oba poročata Connected in skripta, ki preverja samo stanje, bo veselo šla po napačni poti. Zaustavitev tunela ne odstrani nujno poti, ki jih je namestil drug odjemalec, in to je eden od načinov, kako ima stroj hkrati povezano storitev in zastarelo pot. Bodite pozorni na cilj, ki vas zanima, ne na celotno tabelo poti.

Poimenovanje je ločen problem

Druge naprave ne dosežejo Maca po imenu, medtem ko naslov deluje, in to se prijavi kot okvara VPN. Lokalno ime gostitelja, ime gostitelja in zapis DNS so tri različne stvari. scutil --get LocalHostName prikaže ime Bonjour; sudo scutil --set HostName mac-office nastavi ime, ki ga poroča sistem.

Nobena od teh nastavitev ne ustvari zapisa v pisarniški coni. Če morajo drugi gostitelji ime razrešiti prek DNS, ga mora lastnik cone dodati, ali pa naj skripta uporabi naslov. Nastavitev stabilnega imena naredi napovedi dosledne; ne prisili razreševalnika, da odgovori.

V skripto zapišite skupaj identifikator storitve in pričakovano obliko poti ter oboje preverite pred kopiranjem. Tunel, ki je aktiven, a usmerjen v napačno smer, zataji natanko tako kot noben tunel, in vrstica dnevnika z Connected bo naslednjo osebo poslala iskat na napačno mesto.

Sorodni članki