Mijoz ulanadi, TLS muzokaralari paytida muvaffaqiyatsizlikka uchraydi, kutadi va o‘sha serverga o‘sha natija bilan qayta urinadi. Muvaffaqiyatsiz jarayonni qayta ishga tushiruvchi nazoratchi ostida bu urinishlar jurnalda cheksiz siklga aylanadi va birinchi diagnostika satri qo‘l yetmaydigan joyga ketadi. OpenVPN o‘sha muzokara muvaffaqiyatsizligini yana bir urinish o‘rniga ko‘rinadigan chiqishga aylantiruvchi variantni taklif qiladi. Bu diagnostika va nazorat sozlamasi, ta’mirlash emas, shuning uchun uni jarayonning haqiqatan to‘xtab turishiga imkon beradigan siyosat bilan birlashtiring.

Birinchi xatoni yashiruvchi sikl

Ko‘rayotganingiz bitta nosozlik emas, takrorlanuvchi blok: ulanish urinishi, TLS xatosi, tanaffus va keyin o‘sha ketma-ketlik. Har bir takror jurnalda asl satrni yana yuqoriga suradi. Agar birlik nosozlikda qayta ishga tushsa, sikl soatlab davom etishi mumkin va hech kim sababni o‘qimaydi. Alomat — sikl, garchi asosiy nuqson bitta muzokara muammosi bo‘lsa.

Interaktiv sessiyalar bunga chidaydi, chunki vaqtinchalik nosozlik keyingi urinishda o‘tib ketishi mumkin. Avtomatik ulanishlar bunday optimizmga chiday olmaydi: jarayon to‘xtashi kerak, shunda odam yoki monitor holatni ko‘radi.

Biror narsani o‘zgartirishdan oldin bitta to‘liq siklni yozib oling. Uzoq manzilni, xatoda nomlangan TLS bosqichini va jarayon umuman chiqadimi-yo‘qmi, qayd eting.

Sikl ortidagi qayta urinish mexanizmi

Qayta urinish sukut bo‘yicha, chunki bir necha bog‘liq bo‘lmagan taym-aut bitta mexanizmni bo‘lishadi. connect-retry ulanish urinishlari orasidagi intervalni belgilaydi, connect-retry-max har bir uzoq yozuv qanchalik tez-tez sinalishini cheklashi mumkin, resolv-retry esa takroriy nom qidiruvlarini boshqaradi. TLS muzokarasi nosozligi bu mexanizmga transport hodisasi sifatida yetib boradi, shuning uchun mijoz hisobot berish o‘rniga yana bir urinishni rejalashtiradi. Sukut qiymati beqaror aloqa uchun foydali, tuzalmas nuqson uchun zararli.

--tls-exit varianti faqat muzokara holatini o‘zgartiradi. Qo‘llanma uni TLS muzokarasi muvaffaqiyatsiz bo‘lganda chiqish deb ta’riflaydi, bu har qanday xatoda chiqishdan torroq. Taym-autlar, hal qiluvchi nosozliklari va autentifikatsiya radlari o‘z xatti-harakatini saqlaydi.

TLS nosozligida mijozni chiqishga majburlash

tls-exit ni mijoz haqiqatan yuklaydigan profilga qo‘ying yoki ishga tushirishda --tls-exit bering va uni bir marta oldingi planda ishga tushiring. Chiqish holatini va jurnalning oxirgi satrini o‘qing, chunki nazoratchi holatga qarab harakat qiladi. Muzokara nosozligidan keyin noldan farqli chiqish — kutilgan natija. Agar jarayon tugash o‘rniga qayta urinishda davom etsa, variant mijoz haqiqatan yuklaydigan profilda yo‘q.

O‘sha chiqish ko‘rinadimi-yo‘qmi, buni nazoratchi hal qiladi. Restart=always yoki Restart=on-failure bo‘lgan systemd birligi mijozni qayta ishga tushiradi, shuning uchun sikl davom etadi va variant hech narsa qilmayotgandek ko‘rinadi. Mijozni ayblashdan oldin siyosatni tekshiring:

systemctl show -p Restart -p RestartSec openvpn-client@office
journalctl -u openvpn-client@office -n 40 --no-pager

Restart=no jarayonning to‘xtab turishiga imkon beradi, Restart=on-failure esa noldan farqli holatdan keyin ham qayta ishga tushiradi. Nosozlik ko‘rinadigan bo‘lishini, ammo xizmat aloqasiz halokatlardan tiklanishini istasangiz, Restart=on-failure ni o‘rnating va qayta ishga tushirish bo‘ronini to‘xtatish uchun StartLimitBurst va StartLimitIntervalSec dan foydalaning. So‘ng oxirgi chiqish kodini tasdiqlash uchun birlik holatini o‘qing: systemctl status uni xabar qiladi, jurnal esa birinchi xatoni qayta ishga tushirishlar ustida saqlaydi.

Qarorni birlikka yoki profil eslatmalariga yozing. TLS nosozligida chiqadigan profil sabab yozilmagan bo‘lsa, keyingi odamga baxtsiz hodisaday ko‘rinadi. Qaysi nosozliklar jarayonni to‘xtatishi va qaysilari qayta urinilishi kerakligini ko‘rsating.

Bir martalik oxirgi nuqta bilan isbotlang

Xatti-harakatni unga ishonishdan oldin ko‘rish uchun profilni nusxalang va nusxani TCP ulanishini qabul qiladigan, lekin hech qachon OpenVPN gapirmaydigan oxirgi nuqtaga yo‘naltiring. Javob berib, so‘ng jim qoladigan tinglovchi yetarli. tls-exit bilan qo‘l siqish muvaffaqiyatsiz bo‘lganda mijoz tugashi kerak; usiz o‘sha profil aylanishda davom etishi kerak. Nusxadan foydalaning, hech qachon ishlayotgan profildan emas.

Ikki ishga tushirishni chiqish holati va birinchi xato satri bo‘yicha solishtiring, har biri qancha davom etgani bo‘yicha emas. Holat variant ishlaganini, birinchi satr esa qaysi bosqich muvaffaqiyatsiz bo‘lganini aytadi.

Tugatgach sinov profilini olib tashlang. Ataylab noto‘g‘ri oxirgi nuqtali nusxa keyinroq katalogdagi har bir profilni ishga tushiruvchilar uchun tuzoq.

Bu variant hech qachon yetib bormaydigan bosqichlar

Autentifikatsiya rad etilishi keyingi bosqich. Agar server hisobni baholab, rad etsa, TLS allaqachon kelishilgan, shuning uchun tls-exit ishlamaydi. Autentifikatsiyani qayta urinish sozlamalari keyingi qaraladigan joy, server sababi esa mijozning oxirgi satridan muhimroq. Noto‘g‘ri parol va yo‘q sertifikat mijoz tomonida o‘xshash xabarlar keltirib chiqarishi mumkin.

Yo‘q marshrut, noto‘g‘ri hal qiluvchi yoki yetib bo‘lmaydigan shlyuz ham variantdan tashqarida, chunki ular muzokara nosozliklari emas. Jim paket yo‘qolishi eng noaniq holat: almashinuv qanchalik ilgarilaganiga qarab, mijoz muzokara nosozligini xabar qilishi yoki shunchaki taym-autga tushishi mumkin.

Bu farqni eslatmalaringizda saqlang. Sozlama ta’mirlashdan ko‘ra diagnostika va nazorat uchun, shuning uchun u shifr nomuvofiqligini, sertifikat muammosini yoki noto‘g‘ri portni tuzatmaydi. Avval muvaffaqiyatsiz muzokara sababini tuzating, so‘ng darhol chiqish hali ham joylashtirishga mos keladimi-yo‘qmi, hal qiling.

O'xshash maqolalar