Үй желісінің VPN-іне ноутбук сол желіде отырған кезде істейтін ештеңе жоқ. Азғырғыш қысқа жол — нөлден өзгеше кодпен шығатын дайындық командасы; ол unit-ті сәтсіз етеді және әрбір панельді бұзылған күйде көрсетеді. systemd-де дәл осы шешім түріне арналған директива бар және ол әдейі өткізіп жіберуді нақты ақаудан ажыратады. Оны дұрыс жасау — негізінен әрбір шығу кодының нені білдіретінін жазып қою.

Неге сәтсіз алғышарт дұрыс емес пішін

ExecStartPre нөлден өзгеше шығуды іске қосу сәтсіздігі ретінде қарайды, бұл қызметті дайындайтын команда үшін дұрыс. Оны шарт ретінде пайдалану саяси шешімді бұзылған тәуелділіктен ажыратуды мүмкін етпейді. ExecCondition unit-ке сәтсіз деп белгіленбей-ақ іске қосудан бас тартуға мүмкіндік беру үшін бар.

Бұл айырмашылық түнгі сағат үште маңызды, өйткені ешкім жобаға сай жұмыс істеген қызыл unit-ті талдағысы келмейді. Сәтсіз unit әдейі жасалған сәтсіздіктердің арасында нақты ақауларды да жасырады.

Алдымен шығу кодтарының келісімін жазыңыз

Келісімді скрипттен бұрын жазыңыз. Нөлдік шығу — жалғастыру, бірлік шығу — қалған іске қосу командаларын өткізіп жіберу, ал 255 шығу — шарттың өзі жұмыс істей алмағаны. Екі мен 254 арасындағы кодтар әдетте өткізіп жіберуді де білдіреді, мұны көмекші кездейсоқ қате кодын қайтарғанда ұмыту оңай. Төмендегі drop-in көмекшіні unit-тің нақты атына байланыстырады.

[Service]
ExecCondition=/usr/local/libexec/should-start-home-vpn

Әдепкі семантиканы болжамас бұрын әсерлі unit-ті мұрагерлік SuccessExitStatus немесе stop-post параметрлеріне тексеріңіз. Содан кейін үш нәтиженің әрқайсысын әдейі тексеріңіз.

Желілік белгі орынның дәлелі емес

Қолжетімді маршрутизатор мекенжайы немесе белгілі MAC дұрыс желіні меңзей алады және олардың ешқайсысы оны дәлелдемейді. Басқа желі сол мекенжайды қайта пайдалануы мүмкін, ARP деректері ескірген болуы мүмкін және идентификаторларды имитациялауға болады. Зерделеуді саясатқа сәйкес оңтайландыру ретінде қараңыз, аутентификация нәтижесі ретінде емес.

Белгісіздіктің нені білдіретінін алдын ала шешіңіз. Күмән кезінде VPN-ді іске қосу қарапайым қосыла алмайтын клиент үшін қауіпсіз; күмән кезінде оны өткізіп жіберу қауіпсіз емес. Зерделеуді шектеулі етіңіз және тізімдегі біріншісін болжаудың орнына белсенді интерфейсті оқыңыз. Ілініп қалған зерделеу «жоқ» деп жауап бергеннен гөрі нашар, өйткені unit оны күтеді.

Бұл болжамдарды unit файлының қасына жазып қойыңыз, келесі адам көмекшінің нені ұстанатынын білсін. Скрипт басындағы түсініктеме оларды сақтаудың ең арзан орны.

Желілер арасындағы ауысуды басқарыңыз

Шарт қызмет іске қосылғанда орындалады және кейін қайта бағаланбайды. Өткізіп жіберілген unit ноутбук кафеге көшкеннен кейін де өткізіп жіберілген күйде қалады, ал жұмыс істеп тұрған туннель ноутбук үйге оралғаннан кейін де қосулы қалады. Желі өзгерісінің өмірлік циклін бөлек механизм арқылы іске қосу және тоқтату шешімімен байланыстырыңыз.

systemctl cat home-vpn.service

Төрт жағдайды тексеріңіз: үйде іске қосу, сыртта іске қосу, орындала алмайтын зерделеу және unit белсенді кезде желілер арасында ауысу. Өткізіп жіберу себебін журналда көрінетін күйде ұстаңыз, әдейі шешім ешқашан аутентификация сәтсіздігіне ұқсамасын. Қызмет анықтамасы шығу семантикасын және ең төменгі нұсқаны құжаттайды.

Қатысты мақалалар