OpenVPN mijozi o'ldirilgandan keyin DNS hal qilishni to'xtatadi va birinchi instinkt /etc/resolv.conf faylini qayta yozishdir. Bu o'zgarish ishlayotgan resolverni buzishi mumkin, holbuki haqiqiy eskirgan holat boshqa joyda. Birinchi hal qilinishi kerak bo'lgan savol — tunnel o'rnatgan DNS sozlamalari kimga tegishli va tozalashni o'tkazib yuborgan chiqish haqiqatan muhim bo'lganmi.

Tuzatishni uch shart belgilaydi: jarayonni tugatgan signal, sozlamalarni qabul qilgan resolver komponenti va tunnel havolasi hali mavjudmi. Shu tartibda javob bering, tuzatish odatda global faylga tegmasdan keladi.

Qanday chiqish turi sodir bo'lganini aniqlang

Community nashridagi OpenVPN da SIGINT ham, SIGTERM ham silliq chiqish so'rovlari. SIGKILL ni ushlab bo'lmaydi: uni bloklash ham, ishlash ham mumkin emas, shuning uchun hech qanday o'chirish tartibi ishlash imkoniyatiga ega bo'lmaydi. Oldingi plandagi terminalda oddiy Ctrl+C SIGINT hosil qiladi, kutishdan voz kechgan nazoratchi esa odatda SIGKILL ga ko'tariladi. Farq muhim, chunki faqat ikkinchi holat ilgaklar o'tkazib yuborilganiga kafolat beradi.

screen yoki tmux ichida ishlatish Ctrl+C qaysi signal yuborishini o'zgartirmaydi. Terminal odatda nima qilishini emas, jarayon haqiqatan nima olganini tekshiring.

Tunnelni xizmat yoki ulanish menejeri ishga tushirsa, pid ni o'ldirish o'rniga o'sha bitta ulanishni egasi orqali to'xtating. Menejer jarayonni yana ko'tarishi mumkin, natijada sizda yangi tunnel va chalkash resolver holati qoladi. Alohida jarayonga tozalash ishlashi uchun oddiy to'xtatish so'rovi kifoya.

Resolver kimga tegishli ekanini aniqlang

systemd-resolved, resolvconf uslubidagi skript va oddiy fayl qayta yozish uch xil egadir. Birinchisi har bir havola sozlamalarini xotirada saqlaydi va interfeys yo'qolganda ularni tashlaydi. Ikkinchisi biror narsa olib tashlamaguncha saqlanadigan yozuvlarni ushlaydi. Uchinchisi fayl yozadi va tiklashni uni yozgan kishiga qoldiradi.

Tuzatish buyrug'ini tanlashdan oldin egasini aniqlang. Xuddi shu alomat qaysi biri ishlatilishiga qarab uch xil to'g'ri javobga ega.

NetworkManager boshqaradigan VPN resolver o'zgarishlariga allaqachon ega bo'lishi mumkin. Uning ustiga ikkinchi yordamchi qo'shish bir havola uchun raqobatlashadigan ikki ega yaratadi va yutqazgan tomonning holati keyingi qayta ulanishda yana ko'rinadi. Agar menejer javobgar bo'lsa, sozlamani skriptda emas, menejerda tuzating.

down ilgagi nima qila oladi va nima qila olmaydi

Skript down TUN/TAP qurilmasi yopilgandan keyin bir marta ishlaydi. down-pre qo'shish bu tartibni teskari aylantiradi va skriptni qurilma hali mavjud bo'lganda ishga tushiradi, buni tirik havola kerak bo'lgan yordamchilar talab qiladi.

Hech bir ko'rsatma ilgakni SIGKILL dan keyin ishga tushirmaydi. Imtiyozlar ham down-pre orqali tiklanmaydi: agar daemon user yoki group darajasiga tushsa yoki chroot muhitiga kirsa, ilgak bu qoldirgan ruxsat bilan ishlaydi. Chaqirilgan ilgak baribir resolverni yangilay olmasligi mumkin. OpenVPN ma'lumotnomasi signallar va qayta chaqiruv hayot tsiklini qamrab oladi.

Ilgakning o'z xatosini jarayonning chiqish holati yonida tekshiring. Yo'q tozalash va muvaffaqiyatsiz tozalash resolverda bir xil, jurnallarda boshqacha ko'rinadi.

Haqiqatan qolgan holatni tekshiring

systemd-resolved ishlatadigan tizimda resolvectl status qaysi havola hali ham VPN DNS serverlarini yoki marshrutlash domenlarini olib yurganini ko'rsatadi. Bu havola ketgan ulanishga yoki hali ko'tarilgan boshqa tunnelga tegishli bo'lishi mumkin.

Yo'qoladigan interfeys o'zining har bir havola konfiguratsiyasini olib ketadi, shuning uchun o'tkazib yuborilgan ilgak toza DNS bilan birga mavjud bo'lishi mumkin. Agar havola hali ro'yxatdan o'tgan bo'lsa va faqat to'xtatilgan ulanishga tegishli bo'lsa, ega menejer uni olib tashlashi kerak. Agar eski skript global resolver faylini qayta yozgan bo'lsa, uning o'rniga o'sha skriptning hujjatlashtirilgan tiklash qadamini qidiring.

Boshqa havolani o'g'irlamasdan tiklang

Har bir havola sozlamalari sizning boshqaruvingizda bo'lsa, resolvectl revert havola nomini oladi va o'sha interfeys uchun ishlash vaqtidagi DNS konfiguratsiyasini tozalaydi. Bu profil tahriri emas, ishlash vaqtidagi amal, shuning uchun doimiy ulanish konfiguratsiyasi tegilmagan holda qoladi. Noto'g'ri havolani nomlasangiz, ishlayotgan tunnelning DNS ini tozalaysiz, shuning uchun nom holat chiqishidan olinadi.

Tahrirlashdan oldin /etc/resolv.conf boshqariladigan ramziy havola ekaniga ishonch hosil qiling, keyin mijozni yana bir marta odatdagidek to'xtating va DNS ga qayta qarang. Agar ikkinchi to'xtatish tozalasa, avvalgi muammo konfiguratsiya emas, majburiy chiqish bo'lgan.

O'xshash maqolalar