Terminaldan macOS VPN statusu: scutil, marşrutlar və ya ping
Xidmət statusu, nüvə marşrutu və real sorğu üç fərqli suala cavab verir. Skriptinizi xidmət identifikatoruna görə qurun və marşrutu da yoxlayın.
Hansısa deploy skriptində kopyalama başlamazdan əvvəl tunelin işləyib-işləmədiyini yoxlayan bir addım var. Üç cavab mövcuddur və onlar eyni şeyi bildirmir: scutil-ın bildirdiyi xidmət statusu, nüvənin seçdiyi marşrut və qarşı tərəfin həqiqətən cavab verib-verməməsi. Onları müqayisə etmək kopyanı proqnozlaşdıran yoxlama ilə yalnız jurnalı bəzəyən yoxlama arasındakı fərqdir.
VPN işləyirmi sualına üç cavab
Xidmət statusu idarəetmə müstəvisi faktıdır. macOS konfiqurasiyanın qoşulduğunu bilir, çünki onun klient prosesi belə demişdir. Marşrut verilənlər müstəvisi faktıdır: nüvə bu təyinatı həmin interfeysdən göndərəcək. Əlçatanlıq isə başdan-başa faktdır və digər ikisinin görmədiyi səbəblərdən uğursuz ola bilər.
| 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 |
Faydalı yoxlama ilk ikisini birləşdirir və üçüncünü digər ikisinin yalan demədiyinin təsdiqi kimi istifadə edir. Hər biri tək başına vaxt damğası olan bir təxmindir.
Displey adını deyil, identifikatoru oxuyun
scutil --nc list
scutil --nc status "Office"
Siyahı hər xidmət üçün bir sətir çap edir və hər sətirdə mötərizədə status, ardınca xidmət identifikatoru, tip və displey adı gəlir. Skripti identifikatora görə yazın, çünki displey adı kimsənin Sistem Ayarlarına yazdığı şeydir və xəbərdarlıq olmadan dəyişə bilər. Status əmri bir söz, bəzi xidmət tipləri üçün isə ardınca statistika çap edir; bütün çıxışda adı axtarmaq əvəzinə həmin ilk sözü uyğunlaşdırın, çünki ad başqa yerlərdə də görünür.
Xidməti başlatmaq avtorizasiya sorğusu yarada bilər və ya profil idarə olunanda tamamilə rədd edilə bilər. Bu rədd tunelin qüsuruna deyil; onu kimin qaldıra biləcəyinə dair siyasət bəyanatına işarədir.
Üçüncü tərəf klienti siyahıdan gizlənir
Boş siyahı VPN yoxdur demək deyil. Sistemin öz şəbəkə ayarlarında yaradılan konfiqurasiyalar burada görünür; satıcı klienti, idarəetmə profili və ya üçüncü tərəf tətbiqi bu əmrin heç vaxt görmədiyi aktiv tunel saxlaya bilər. Öz aləti öz xidməti üçün səlahiyyət mənbəyidir. Onunla heç vaxt qeydiyyatdan keçməmiş klient haqqında scutil-dan soruşmaq heç nə qaytarmır və heç nə «qoşulmayıb» cavabı ilə eyni deyil.
Siyahı boşdur, lakin trafik açıq şəkildə şifrələnibsə, bunun əvəzinə interfeysi axtarın: gözlənilən diapazonda ünvanı olan utun və ya ppp cihazı nəyinsə tunel qurduğuna dair sübutdur. Bu, xidmət statusundan daha zəif siqnaldır, ona görə interfeysi kimlik sübutu kimi qəbul etmək əvəzinə onu marşrut yoxlaması ilə birləşdirin. Bir neçə klient bir neçə belə interfeys yarada bilər və onlardan yalnız biri nəzərdə tutduğunuz tunelə aiddir.
Status marşrutlaşdırma deyil
Qoşulmuş xidmət tunelin mövcud olduğunu deyir. Lakin təyinatınızın ondan istifadə etdiyini demir. Ünvanları oxuyun, sonra nüvədən birbaşa soruşun:
ifconfig | grep -A4 utun
netstat -rn -f inet
route -n get 10.40.0.20
Tam tunel klienti tuneldən keçən standart marşrut quraşdırır; bölünmüş tunel klienti müəyyən xüsusi prefikslər quraşdırır. Hər ikisi Connected bildirir və yalnız statusu yoxlayan skript sevinclə yanlış yoldan gedəcək. Tuneli dayandırmaq başqa klientin quraşdırdığı marşrutları mütləq silmir və bu, maşının eyni anda həm qoşulmuş xidmət, həm də köhnəlmiş marşrutla qalmasının bir yoludur. Bütün marşrut cədvəlinə deyil, sizi maraqlandıran təyinatına baxın.
Adlandırma ayrı bir problemdir
Digər maşınlar Mac-a ünvanı işlədiyi halda adla çata bilmir və bu, VPN nasazlığı kimi bildirilir. Yerli host adı, host adı və DNS qeydi üç fərqli şeydir. scutil --get LocalHostName Bonjour adını göstərir; sudo scutil --set HostName mac-office sistemin bildirdiyi adı təyin edir.
Heç bir ayar ofis zonasında qeyd yaratmır. Digər hostlar adı DNS vasitəsilə həll etməlidirsə, zona sahibi onu əlavə etməlidir, yoxsa skript bunun əvəzinə ünvanı istifadə etməlidir. Sabit ad təyin etmək elanları ardıcıl edir; həll edicinin cavab verməsinə səbəb olmur.
Xidmət identifikatorunu və gözlənilən marşrut formasını skriptdə birlikdə qeyd edin və kopyalamadan əvvəl hər ikisini yoxlayın. İşləyən, lakin yanlış istiqamətə yönəldilmiş tunel heç tunel olmaması kimi uğursuz olur və Connected yazan jurnal sətri növbəti adamı yanlış yerə baxmağa göndərəcək.