Тәуелді қызметті tun0.device-ке қосу туннельге жазылу сияқты көрінеді, бірақ олай емес. Құрылғы бірлігі интерфейстің бар екенін білдіреді, бұл сәтсіз байланыс және одан кейінгі қайта қосылу барысында да шын болып қалуы мүмкін. Сонда қызмет дұрыс емес сәтте әрекет етеді немесе мүлде етпейді, интерфейстің осы арада жоғалып кеткеніне байланысты. Сізді шынымен қызықтыратын оқиғаны сипаттайтын ілмек — OpenVPN шақыратын ілмек, systemd болжаған емес.

Триггерді таңдамас бұрын қызметке қандай шарт қажет екенін шешіңіз, өйткені үш үміткер бір-бірін алмастырмайды.

Құрылғы бірлігі шын мәнінде нені қадағалайды

systemd құрылғы бірлігін ядроның желілік интерфейске көзқарасынан жасайды, сондықтан интерфейс пайда болғанда tun0.device белсенді болады, ал жойылғанда белсенді емес болады. persist-tun арқылы жұмсақ қайта іске қосу интерфейсті орнында ұстайды, сондықтан бірлік ешқашан қалтырамайды және оған байланған ештеңе іске қосылмайды. Тұрақтылықсыз да бірлік маршруттар, DNS немесе алыс жақ жауап бере ме деген туралы ештеңе айтпайды.

Бұл оны 'VPN дайын' үшін нашар балама етеді. Тек жергілікті мекенжайды қажет ететін тыңдаушы интерфейстің бар болуымен қанағаттануы мүмкін, ал алыс желідегі қолданбаны шақыратын қызметке маршруттар мен қолжетімділік қажет, оны құрылғы бірлігі білдіре алмайды.

up, route-up және up-restart әртүрлі нәрсені білдіреді

up TUN/TAP құрылғысы ашылып, интерфейс конфигурацияланғаннан кейін іске қосылады, бұл тағайындалған мекенжайды байланыстыратын тыңдаушы үшін дұрыс сәт. route-up маршруттар орнатылғаннан кейін, конфигурацияланған маршрут кешігуіне бағынып іске қосылады және маршрут кезеңінің аяқталуын қажет ететін жұмысқа сай келеді. Екеуі де алыс қолданбаның жауап беретінін дәлелдемейді. Олардың арасында таңдау қызметке не қажет екені туралы сұрақ, қай ілмек аяқталғандай естіледі деген емес.

persist-tun арқылы қайта іске қосулар құрылғыны қайта пайдаланады, сондықтан up-restart орнатылмаса, up қайта іске қосылмайды. Бұл опция up скриптін құжатталған қайта іске қосу өмірлік циклі үшін қосады, ал оның ортасы алғашқы іске қосумен салыстырғанда қысқартылған. Толық ортаны болжайтын скрипт бірінші байланыста жұмыс істейді, келесісінде сәтсіз болады.

Әрекетті күтпей жіберіңіз

systemctl restart синхронды шақыратын ілмек тәртібі туннельді күтетін бірлікпен тұйықталуы мүмкін. systemctl --no-block try-restart vpn-dependent.service жұмысты кезекке қояды және қайтады, бұл ілмектің өзі әрекет еткен байланысты блоктауын болдырмайды. try-restart тек жұмыс істеп тұрған бірлікке әсер етеді, ал restart белсенді емес бірлікті де іске қосады; әдет бойынша емес, әдейі таңдаңыз.

Кезекке қою тексеру емес. Жұмыс қабылданған бойда ілмек табыс қайтарады, сондықтан тексеру мақсатты бірліктің журналында немесе оның нақты тыңдаушы күйінде болуы керек.

Қайта іске қосу саясаты бірлікте тұрады, ілмекте емес

RemainAfterExit=yes бар oneshot бірлігі бұйрығы шыққаннан кейін де белсенді болып қалады, ал екінші іске қосу сұрауы ештеңе жасамайды, өйткені systemd оны әлдеқашан іске қосылған деп санайды. Бұл айналасында жобалау керек қасиет, қайталама іске қосу шақыруларымен айналып өтетін ақау емес. Егер әрекет әр байланыс үшін орындалуы керек болса, бірлікке оған мүмкіндік беретін пішін қажет.

After= бірліктерді реттейді, ал BindsTo= өмірлерді байланыстырады, бірақ ешқайсысы 'VPN әр жалғанғанда мұны қайта іске қос' дегенді білдірмейді. Туннельге байланған бірлік туннель тоқтағанда тоқтайды; туннель қайта оралғанда ол өзін қайта іске қоспайды, әйтеуір бірдеңе оны қайта іске қоспаса.

Бір емес, үш қайта қосылуды сынаңыз

Суық іске қосу, клиенттің толық қайта іске қосылуы және жұмсақ қайта қосылу әрқайсысы басқа жолды жаттықтырады. Жұмсақ қайта қосылу — жоқ up-restart, қысқартылған орта немесе ешқашан белсенді емес болмаған құрылғы бірлігін әшкерелейтін жағдай. Үшеуін де іске қосып, екі бағытты растаңыз: туннель көтерілгенде қызмет әрекет етеді, және Wi-Fi роумингі сияқты байланыссыз буын өзгерістерінде қайта іске қосылмайды.

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

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