SIGKILL кейін OpenVPN DNS қалып қалады: алдымен иесін тексеріңіз
SIGKILL OpenVPN-нің down ілгегін іске қоса алмайды, бірақ systemd-resolved әрбір байланыс үшін DNS-ті бәрібір тастауы мүмкін. Не шыққанын, resolver кімге тиесілі екенін және не қалғанын анықтаңыз.
OpenVPN клиенті өлтірілгеннен кейін DNS шешуді тоқтатады, ал бірінші түйсік /etc/resolv.conf файлын қайта жазу болады. Бұл өзгеріс жұмыс істеп тұрған resolver-ді бұзуы мүмкін, ал нақты ескірген күй басқа жерде тұр. Бірінші шешілуі тиіс сұрақ — туннель орнатқан DNS параметрлері кімге тиесілі және тазалауды өткізіп жіберген шығу шынымен маңызды болды ма.
Жөндеуді үш шарт анықтайды: процесті тоқтатқан сигнал, параметрлерді қабылдаған resolver компоненті және туннель байланысы әлі бар ма. Оларға осы ретпен жауап беріңіз, сонда түзету әдетте ғаламдық файлды ұстамай-ақ келеді.
Қандай шығу түрі болғанын анықтаңыз
Community басылымындағы OpenVPN үшін SIGINT те, SIGTERM де ұқыпты шығу сұраныстары. SIGKILL-ді ұстауға болмайды: оны блоктауға да, өңдеуге де болмайды, сондықтан ешбір өшіру рәсімі орындалу мүмкіндігін алмайды. Алдыңғы пландағы терминалдағы қарапайым Ctrl+C SIGINT тудырады, ал күтуді тастаған қадағалаушы әдетте SIGKILL-ге көтеріледі. Айырмашылық маңызды, өйткені тек екінші жағдай ілгектердің өткізілгеніне кепілдік береді.
screen немесе tmux ішінде жүргізу Ctrl+C қандай сигнал жіберетінін өзгертпейді. Терминал әдетте не істейтінін емес, процестің шын мәнінде не алғанын тексеріңіз.
Туннельді қызмет немесе қосылым менеджері жүргізсе, pid-ді өлтірудің орнына сол бір қосылымды оның иесі арқылы тоқтатыңыз. Менеджер процесті қайта көтеруі мүмкін, сонда сізде жаңа туннель және шатасқан resolver күйі қалады. Дербес процеске тазалау жүруі үшін қарапайым тоқтату сұранысы жеткілікті.
Resolver кімге тиесілі екенін анықтаңыз
systemd-resolved, resolvconf стиліндегі скрипт және қарапайым файлды қайта жазу — үш түрлі ие. Біріншісі әр байланыс параметрлерін жадта ұстайды және интерфейс жоғалғанда оларды тастайды. Екіншісі бірдеңе жойғанша сақталатын жазбаларды ұстайды. Үшіншісі файл жазады және қалпына келтіруді оны жазған адамға қалдырады.
Жөндеу командасын таңдамас бұрын иесін анықтаңыз. Сол белгінің қайсысы қолданылып жатқанына қарай үш түрлі дұрыс жауабы бар.
NetworkManager басқаратын VPN resolver өзгерістеріне әлдеқашан ие болуы мүмкін. Оның үстіне екінші көмекші қосу бір байланыс үшін бәсекелесетін екі ие жасайды, ал жеңілген жақтың күйі келесі қайта қосылуда қайта пайда болады. Егер менеджер жауапты болса, параметрді скриптте емес, менеджерде түзетіңіз.
down ілгегі не істей алады және не істей алмайды
Скрипт down TUN/TAP құрылғысы жабылғаннан кейін бір рет орындалады. down-pre қосу бұл реттілікті кері айналдырады және скриптті құрылғы әлі бар кезде орындайды, мұны тірі байланыс қажет ететін көмекшілер талап етеді.
Екі нұсқаудың ешқайсысы ілгекті SIGKILL-ден кейін жүргізбейді. Артықшылықтар да down-pre арқылы қалпына келтірілмейді: егер демон user немесе group деңгейіне түссе немесе chroot ортасына кірсе, ілгек оның қалдырған қолжетімділігімен жұмыс істейді. Шақырылған ілгек resolver-ді жаңарта алмауы да мүмкін. OpenVPN анықтамалығы сигналдарды және callback өмірлік циклін қамтиды.
Ілгектің өз қатесін процестің шығу күйімен қатар тексеріңіз. Жоқ тазалау мен сәтсіз тазалау resolver-де бірдей, ал журналдарда басқаша көрінеді.
Шынымен қалған күйді тексеріңіз
systemd-resolved қолданатын жүйеде resolvectl status қай байланыстың әлі де VPN DNS серверлерін немесе маршруттау домендерін алып жүргенін көрсетеді. Ол байланыс кеткен қосылымға немесе әлі көтерілген басқа туннельге тиесілі болуы мүмкін.
Жоғалатын интерфейс өзінің әр байланыс конфигурациясын ала кетеді, сондықтан өткізілген ілгек таза DNS-пен қатар өмір сүре алады. Егер байланыс әлі тіркелген болса және тек тоқтатылған қосылымға тиесілі болса, оған ие менеджер оны жоюы керек. Егер ескірік скрипт ғаламдық resolver файлын қайта жазса, оның орнына сол скрипттің құжатталған қалпына келтіру қадамын іздеңіз.
Басқа байланысты ұрламай қалпына келтіріңіз
Әр байланыс параметрлері сіздің басқаруыңызда болса, resolvectl revert байланыс атауын алады және сол интерфейс үшін орындалу уақытындағы DNS конфигурациясын тазалайды. Бұл профильді өңдеу емес, орындалу уақытындағы әрекет, сондықтан тұрақты қосылым конфигурациясы өзгеріссіз қалады. Қате байланысты атасаңыз, жұмыс істеп тұрған туннельдің DNS-ін тазалайсыз, сондықтан атау күй шығысынан алынады.
Өңдеу алдында /etc/resolv.conf басқарылатын символдық сілтеме екеніне көз жеткізіңіз, содан кейін клиентті тағы бір рет қалыпты түрде тоқтатып, DNS-ке қайта қараңыз. Егер екінші тоқтату тазаласа, бұрынғы мәселе конфигурация емес, мәжбүрлі шығу болды.