macOS-те терминалдан VPN күйі: scutil, маршруттар немесе ping
Қызмет күйі, ядро маршруты және нақты сұраныс үш түрлі сұраққа жауап береді. Скриптті қызмет идентификаторына сәйкес жазып, маршрутты да тексеріңіз.
Орналастыру скриптінің бір жерінде көшіру басталмас бұрын туннель қосылғанын тексереді. Үш жауап бар және олар бір мағынаны білдірмейді: scutil хабарлайтын қызмет күйі, ядро таңдаған маршрут және алыс жақ шынымен жауап бере ме. Оларды салыстыру көшіруді болжайтын тексеру мен журналды әдетте ғана безендіретін тексерудің айырмасы.
VPN қосылған ба деген сұраққа үш жауап
Қызмет күйі басқару жазықтығының фактісі. macOS конфигурацияның қосылғанын біледі, өйткені оның клиент процесі солай деді. Маршрут деректер жазықтығының фактісі: ядро бұл межелі орынды сол интерфейс арқылы жібереді. Қолжетімділік ұшынан ұшына факт және қалған екеуінің ешқайсысы көрмейтін себептерден де сәтсіз болуы мүмкін.
| 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 |
Пайдалы тексеру алғашқы екеуін біріктіріп, үшіншісін қалған екеуі өтірік айтпағанының растауы ретінде қолданады. Кез келгені жалғыз уақыт белгісі қойылған болжам ғана.
Идентификаторды оқыңыз, көрсетілетін атауды емес
scutil --nc list
scutil --nc status "Office"
Тізім әр қызмет үшін бір жол шығарады, ал әр жолда жақшадағы күй, содан кейін қызмет идентификаторы, түрі және көрсетілетін атауы болады. Скриптті идентификатор бойынша жазыңыз, өйткені көрсетілетін атау біреудің Жүйелік параметрлерге енгізгені, ол ескертусіз өзгеруі мүмкін. Күй командасы бір сөз шығарады, кейбір қызмет түрлерінде одан кейін статистика келеді; атауды бүкіл шығыстан іздеудің орнына сол бірінші сөзді салыстырыңыз, өйткені атау басқа жерлерде де кездеседі.
Қызметті іске қосу авторизация сұрауын тудыруы немесе профиль басқарылатын болса, тікелей қабылданбауы мүмкін. Бұл бас тарту туннельдің ақауы емес; бұл оны кім көтере алатыны туралы саясат мәлімдемесі.
Үшінші тарап клиенті тізімнен жасырылады
Бос тізім VPN жоқ дегенді білдірмейді. Жүйенің өзінің желілік параметрлерінде жасалған конфигурациялар осында көрінеді; жеткізуші клиенті, басқару профилі немесе үшінші тарап қолданбасы бұл команда ешқашан көрмейтін белсенді туннельді ұстап тұруы мүмкін. Өз қызметі үшін өз құралы билік. Оған ешқашан тіркелмеген клиент туралы scutil-тен сұрау ештеңе қайтармайды, ал ештеңе өшірілгенмен бірдей жауап емес.
Тізім бос болса да трафик анық шифрланған болса, интерфейсті іздеңіз: күтілетін ауқымда мекенжайы бар utun немесе ppp құрылғысы бірдеңенің туннель орнатқанының дәлелі. Бұл қызмет күйінен әлсіз сигнал, сондықтан интерфейсті жеке бастың дәлелі деп санаудың орнына оны маршрут тексеруімен қосыңыз. Бірнеше клиент бірнеше осындай интерфейс жасай алады және олардың тек біреуі сіз айтқан туннельге тиесілі.
Күй маршруттау емес
Қосылған қызмет туннель бар деп айтады. Ол сіздің межелі орын оны қолданады деп айтпайды. Мекенжайларды оқып, содан кейін ядродан тікелей сұраңыз:
ifconfig | grep -A4 utun
netstat -rn -f inet
route -n get 10.40.0.20
Толық туннель клиенті туннель арқылы әдепкі маршрутты орнатады; бөлінген туннель клиенті нақты жеке префикстерді орнатады. Екеуі де Connected деп хабарлайды, ал тек күйді тексеретін скрипт қуана дұрыс емес жолмен жүреді. Туннельді тоқтату басқа клиент орнатқан маршруттарды міндетті түрде жоймайды, және бұл машинаның бір уақытта қосылған қызмет пен ескірген маршрутқа ие болуының бір жолы. Сізге маңызды межелі орынға қараңыз, бүкіл маршрут кестесіне емес.
Атау беру бөлек мәселе
Басқа машиналар Mac-қа атауы бойынша жете алмайды, ал оның мекенжайы жұмыс істейді, және бұл VPN ақауы ретінде хабарланады. Жергілікті хост атауы, хост атауы және DNS жазбасы үш түрлі нәрсе. scutil --get LocalHostName Bonjour атауын көрсетеді; sudo scutil --set HostName mac-office жүйе хабарлайтын атауды орнатады.
Бұл параметрлердің ешқайсысы кеңсе аймағында жазба жасамайды. Егер басқа хосттар атауды DNS арқылы шешуі керек болса, аймақ иесі оны қосуы керек, әйтпесе скрипт мекенжайды қолдануы керек. Тұрақты атау орнату хабарламаларды бірдей етеді; ол шешушіні жауап беруге мәжбүрлемейді.
Скриптте қызмет идентификаторы мен маршруттың күтілетін пішінін бірге жазып, көшіру алдында екеуін де тексеріңіз. Қосылған, бірақ дұрыс емес бағытқа бағдарланған туннель дәл туннель жоқ сияқты сәтсіздікке ұшырайды, ал Connected деген журнал жолы келесі адамды дұрыс емес жерге іздеуге жібереді.