OpenVPN mahalliy bog‘lanishi yuklashda muvaffaqiyatsiz: kutish yoki qayta urinish
Mahalliy manzil hali ko‘tarilmagan bo‘lsa, OpenVPN bog‘lana olmaydi. Cheklangan kutishni qayta ishga tushirish siyosati bilan solishtiring va nima uchun network-online.target kafolat emasligini ko‘ring.
Yuklashda ishga tushmaydigan OpenVPN serveri uchun ikkita yechim taklif qilinadi: manzilni kutish yoki xizmat bog‘lanish muvaffaqiyatli bo‘lguncha qayta urinishiga yo‘l qo‘yish. Ikkalasi ham bir xil belgini hal qiladi, lekin xatoda turlicha yo‘l tutadi. Kutish aniq bir shartni kodlaydi va u yo‘q bo‘lsa baland ovozda muvaffaqiyatsiz bo‘ladi; qayta urinish shartni yashiradi va urinishda davom etadi. Qaysi biri sizning birligingizga tegishli ekani, bu manzil loyihalashtirilgan bog‘liqlikmi yoki vaqt tasodifimi — shunga bog‘liq.
Ikkalasi ham hech narsani kutmaydigan va nimanidir kutganini bildirmaydigan qat’iy uyqudan yaxshiroq.
local parametri aslida nimani talab qiladi
local demon o‘z soketini bog‘laydigan manzilni belgilaydi va hali mavjud bo‘lmagan manzilga bog‘lanish so‘ralgan manzil haqidagi xato bilan darhol muvaffaqiyatsiz bo‘ladi. Parametr yo‘q bo‘lsa, demon barcha manzillarda tinglaydi; shuning uchun bir xil profil interfeysi hali ko‘tarilmagan mashinada ham ishlaydi: siz aytgan bitta manzil o‘rniga hamma joyda tinglaydi. Aynan shu farq butun nosozlikdir va qayta yuklashgacha ko‘rinmay qoladi.
Talab interfeysning qandaydir umumiy ma’noda ko‘tarilgani emas. Manzil bog‘lanish paytida kerakli interfeysga biriktirilgan bo‘lishi va aynan o‘sha demon keyinroq yaratadigan tunnel emas, balki asosiy interfeys bo‘lishi kerak. Kirgandan bir necha daqiqa keyin o‘tkazilgan tekshiruv yuklash ketma-ketligi haqida hech narsani isbotlamaydi.
Manzilni kutish va bog‘lanishni qayta urinish
Kutish — manzil paydo bo‘lguncha so‘rov yuboradigan, urinishlar soni cheklangan va vaqt tugaganda noldan farqli chiqish kodi beradigan ExecStartPre demakdir. Qayta urinish — asosiy jarayon muvaffaqiyatsiz bo‘lishiga yo‘l qo‘yib, xizmat menejeridan uni yana ishga tushirishni so‘rash; masalan, Restart=on-failure va RestartSec=5 bilan. Birinchisi yetishmayotgan shartni muvaffaqiyatsiz birlik sifatida bildiradi, ikkinchisi esa oxiri to‘xtaydigan qayta ishga tushirishlar qatori sifatida; jurnalda bu shovqinliroq, ammo oldindan aytib bo‘lmaydigan sabablarga ko‘ra kech keladigan manzilga bardosh beradi.
Manzil loyihalashtirilgan bog‘liqlik bo‘lsa kutishni, manzil odatda paydo bo‘lsa-yu vaqti o‘zgarib tursa qayta urinishni afzal ko‘ring. Ikkalasini birlashtirish o‘rinli: cheklangan kutish odatiy holatni, qayta ishga tushirish siyosati esa istisno holatni qamrab oladi. Hech biri abadiy ishlamasligi kerak, chunki cheksiz urinadigan birlik noto‘g‘ri konfiguratsiyani bildirish o‘rniga yashiradi.
Nega network-online.target yetarli emas
network-online.target faol tarmoq amalga oshirishi online deganda nimani tushunsa, faqat shuni va’da qiladi, ortiqchasini emas. systemd-networkd bilan bu maqsadga qachon erishilganini systemd-networkd-wait-online hal qiladi va uning standart online tushunchasi sizning aniq manzilingiz paydo bo‘lishidan oldin qondirilishi mumkin. NetworkManager ostida wait-online xizmati o‘z qoidalarini qo‘llaydi. Maqsaddan keyin tartiblashish mustahkam asos, lekin bitta manzil, DNS javobi yoki uzoq peer tayyorligiga kafolat emas.
Xuddi shu mulohaza odatiy muqobillarni ham inkor etadi. Ish stolidagi avtoishga tushish yozuvi serverda hech qachon ochilmasligi mumkin bo‘lgan foydalanuvchi seansini kutadi, kechiktirilgan cron buyrug‘i esa paydo bo‘lishiga umid qilgan resursni nomlamay vaqt qo‘shadi. Ikkalasi ham oylar davomida muvaffaqiyatli ko‘rinishi, keyin esa ahamiyatli bo‘lgan yagona yuklashda muvaffaqiyatsiz bo‘lishi mumkin.
Sovuq yuklashdan keyin bog‘lanishni tekshiring
Xizmatni qayta ishga tushirish emas, haqiqiy sovuq yuklash bilan tekshiring, chunki qayta ishga tushirish yuklash ketma-ketligi yaratishi shart bo‘lgan manzilni meros oladi. Yuklashdan keyin ss -lntp yoki ss -lunp har bir tinglovchi aslida bog‘langan mahalliy manzilni ko‘rsatadi, journalctl -b -u openvpn-server@server esa birinchi urinish muvaffaqiyatsiz bo‘lgan-bo‘lmaganini ko‘rsatadi. Bog‘langan manzilni profildagi manzil bilan solishtiring, so‘ng tarmoq qayta ulangandan keyin solishtirishni takrorlang.
Agar profil hech qachon qat’iy manzilga muhtoj bo‘lmagan bo‘lsa, local ni olib tashlash qonuniy soddalashtirish, lekin uni muammo bartaraf etish odati emas, xavfsizlik qarori qiling.
Tinglovchini kengaytirish unga kim yetib borishini o‘zgartiradi, shuning uchun bu o‘zgarishni uni cheklashi kerak bo‘lgan xavfsizlik devori siyosati bilan birga ko‘rib chiqing. Har bir interfeysda ishonchli ishga tushadigan xizmat asl muammoni hal qilmagan; u muammoni tarmoq chetiga ko‘chirgan.