Kažkur diegimo scenarijuje prieš pradedant kopijavimą tikrinama, ar tunelis veikia. Galimi trys atsakymai, ir jie nereiškia to paties: paslaugos būsena, kurią praneša scutil, branduolio pasirinktas maršrutas ir tai, ar tolimasis galas tikrai atsako. Jų palyginimas yra skirtumas tarp patikros, kuri numato kopijavimą, ir tos, kuri tik puošia žurnalą.

Trys atsakymai į klausimą, ar VPN įjungtas

Paslaugos būsena yra valdymo plokštumos faktas. macOS žino, kad konfigūracija prijungta, nes taip pasakė jos kliento procesas. Maršrutas yra duomenų plokštumos faktas: branduolys siųs šią paskirties vietą per tą sąsają. Pasiekiamumas yra ištisinis faktas, ir jis gali nepavykti dėl priežasčių, kurių nė vienas iš kitų dviejų nemato.

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

Naudinga patikra sujungia pirmuosius du ir trečiąjį naudoja patvirtinimui, kad pirmieji du nemelavo. Bet kuris vienas atskirai yra spėjimas su laiko žyma.

Skaitykite identifikatorių, o ne rodomą vardą

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

Sąrašas išspausdina po vieną eilutę kiekvienai paslaugai, ir kiekvienoje eilutėje yra būsena skliausteliuose, tada paslaugos identifikatorius, tipas ir rodomas vardas. Rašykite scenarijų pagal identifikatorių, nes rodomas vardas yra tai, ką kas nors įvedė sistemos nustatymuose, ir jis gali pasikeisti be įspėjimo. Būsenos komanda išspausdina vieną žodį, o kai kurių tipų paslaugoms po jo statistiką; lyginkite tą pirmąjį žodį, o ne ieškokite vardo visoje išvestyje, kuris pasitaiko ir kitur.

Paslaugos paleidimas gali iškviesti autorizacijos raginimą arba būti tiesiog atsisakyta, kai profilis valdomas. Tas atsisakymas nėra tunelio gedimas; tai politikos pareiškimas apie tai, kam leidžiama jį pakelti.

Trečiosios šalies klientas slepiasi nuo sąrašo

Tuščias sąrašas nereiškia, kad VPN nėra. Konfigūracijos, sukurtos pačios sistemos tinklo nustatymuose, rodomos čia; tiekėjo klientas, valdymo profilis ar trečiosios šalies programa gali turėti aktyvų tunelį, kurio ši komanda niekada nemato. Savo paslaugai autoritetas yra jo paties įrankis. Klausiant scutil apie klientą, kuris niekada neprisiregistravo, grąžinama nieko, o nieko nėra toks pat atsakymas kaip atjungta.

Kai sąrašas tuščias, bet srautas akivaizdžiai užšifruotas, ieškokite sąsajos: įrenginys utun arba ppp su adresu laukiamame diapazone yra įrodymas, kad kažkas sukūrė tunelį. Tai silpnesnis signalas nei paslaugos būsena, todėl poruokite jį su maršruto patikra, o ne laikykite sąsajos tapatybės įrodymu. Keli klientai gali sukurti kelias tokias sąsajas, ir tik viena jų priklauso tuneliui, kurį turėjote omenyje.

Būsena nėra maršrutizavimas

Prijungta paslauga sako, kad tunelis egzistuoja. Ji nesako, kad jūsų paskirties vieta juo naudojasi. Perskaitykite adresus, tada paklauskite branduolio tiesiogiai:

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

Pilno tunelio klientas įdiegia numatytąjį maršrutą per tunelį; padalinto tunelio klientas įdiegia konkrečius privačius prefiksus. Abu praneša Connected, o scenarijus, kuris tikrina tik būseną, lengvai pasuks neteisingu keliu. Sustabdžius tunelį nebūtinai pašalinami maršrutai, kuriuos įdiegė kitas klientas, ir tai vienas būdų, kaip kompiuteryje vienu metu atsiranda prijungta paslauga ir pasenęs maršrutas. Žiūrėkite į paskirties vietą, kuri jums rūpi, o ne į visą maršrutų lentelę.

Vardai yra atskira problema

Kitos mašinos negali pasiekti Mac pagal vardą, nors jo adresas veikia, ir tai pranešama kaip VPN gedimas. Vietinis hosto vardas, hosto vardas ir DNS įrašas yra trys skirtingi dalykai. scutil --get LocalHostName rodo Bonjour vardą; sudo scutil --set HostName mac-office nustato vardą, kurį praneša sistema.

Nė vienas iš šių nustatymų nesukuria įrašo biuro zonoje. Jei kiti hostai turi išspręsti vardą per DNS, zonos savininkas turi jį pridėti, arba scenarijus turėtų naudoti adresą. Stabilaus vardo nustatymas padaro skelbimus nuoseklius; jis nepriverčia sprendiklio atsakyti.

Užrašykite paslaugos identifikatorių ir laukiamą maršruto formą kartu scenarijuje ir prieš kopijavimą patikrinkite abu. Tunelis, kuris veikia, bet nukreiptas neteisinga kryptimi, žlunga lygiai taip pat kaip jokio tunelio, o žurnalo eilutė su Connected nusiųs kitą žmogų ieškoti ne toje vietoje.

Susiję straipsniai