Interfeys ishlayapti, lekin wg-quick muvaffaqiyatsiz bo‘ldi: endi nima qilish kerak
Muvaffaqiyatsiz unit orqasida yarim sozlangan tunnel qoldirishi mumkin. Birinchi muvaffaqiyatsiz qadamni o‘qing, tozalash yoki tuzatishni hal qiling, so‘ng so‘rov bilan isbotlang.
Unit qizil, interfeys mavjud va tunnel asosan ishlayapti — bu eng chalkash kombinatsiya. Sozlash ketma-ketlikdir: avval interfeys yaratiladi, keyin manzillar, marshrutlar, hal qiluvchi sozlamalari va har qanday hook buyruqlari keladi. To‘rtinchi qadamdagi xato birinchi uchtasini joyida qoldiradi, shuning uchun interfeys nomi ishga tushish boshlanganiga dalil, tugaganiga emas. Bitta qo‘shimcha fakt bu chalkashlikdan qutqarardi: muvaffaqiyatsiz bo‘lgan qadam.
Qismli holat odatiy muvaffaqiyatsizlikdir
Bunday xatti-harakatni buzilish deb emas, kutish kerak. Interfeys sozlashning eng arzon qismi va uni ortda qoldirish eng oson, mashinani yarim ishlayotgandek ko‘rsatadigan qism ham aynan shu.
Hali mavjud bo‘lmagan narsa — muvaffaqiyatsiz qadamdan keyin kelgan hamma narsa. Agar xato hal qiluvchi bosqichida bo‘lgan bo‘lsa, manzillar va marshrutlar bor, DNS esa yo‘q. Agar bu marshrut bo‘lsa, tunnelning manzili bor, lekin u orqali o‘tadigan yo‘l yo‘q.
Natijada ba’zi sinovlarga javob beradigan, boshqalarida esa muvaffaqiyatsiz bo‘ladigan mashina paydo bo‘ladi; shuning uchun odamlar xizmat miltillayapti deb xulosa qiladi, holbuki u hech qachon muvaffaqiyatli ishga tushmagan. Hech qachon tugamagan xizmat miltillay olmaydi. U faqat o‘sha sababdan qayta-qayta muvaffaqiyatsiz bo‘lishi mumkin.
Birinchi muvaffaqiyatsiz qadamni toping
Faqat joriy holatni emas, unit jurnalini o‘qing va uni muvaffaqiyatsiz ishga tushirishning boshidan o‘qing. Oxirgi satr chiqish kodini aytadi; birinchi xato nimani tuzatish kerakligini aytadi.
Bu buyruqlar unit holatini, shu unitning yuklanish jurnalini va tunnelning jonli holatini chiqaradi:
systemctl status wg-quick@wg0
journalctl -u wg-quick@wg0 -b --no-pager | tail -40
wg show
ip -4 addr show dev wg0Hal qiluvchi xatosi, allaqachon mavjud marshrut, noldan farqli kod bilan chiqqan hook va konfiguratsiyani tahlil qilishdagi xato — barchasi o‘sha oynada ko‘rinadi va har biri o‘z komponentini nomlaydi. Faqat interfeys holatidan taxmin qilish bu ma’lumotlarning barchasini e’tiborsiz qoldiradi.
Tuzatishni hal qiladigan uch shart
Tozalayapsizmi, joyida tuzatyapsizmi yoki unitni yuklanish yo‘lidan olib tashlayapsizmi — buni biror narsa yozishdan oldin hal qiling.
Agar interfeys buzilgan, ammo konfiguratsiya to‘g‘ri bo‘lsa, tozalang va qaytadan boshlang. Agar konfiguratsiya noto‘g‘ri bo‘lsa, uni tuzating va baribir avval tozalang, chunki qismli holat ustida ikkinchi menejerni ishga tushirish bitta interfeys uchun ikkita egasini yaratadi. Agar muvaffaqiyatsizlik mashinada bo‘lmagan hal qiluvchi yordamchisi kabi yetishmayotgan tizim komponenti bo‘lsa, unit shikoyat qilishdan to‘xtaguncha tahrirlash o‘rniga bog‘liqlikni ataylab o‘rnating yoki olib tashlang.
Bu uch holat sirli qizil unitga o‘xshagan narsalarning ko‘p qismini qamrab oladi. Ajratuvchi savol: xuddi shu muvaffaqiyatsizlik toza holatli mashinada ham sodir bo‘larmidi, javob odatda birinchi xato satridan keladi.
Qayta urinishdan oldin tozalang
Mavjud holat ustida qayta urinish yangi sabab bilan muvaffaqiyatsiz bo‘lib, asl sababni yashirishi mumkin. Interfeysni uni yaratgan asbob bilan pastga tushiring, so‘ng hech narsa qolmaganiga ishonch hosil qiling.
Aloqasiz interfeyslarni o‘chirmang va xostning tarmoq stekini qayta o‘rnatmang. Ikkalasi ham kichik obyektni tuzatish uchun qilinadigan katta harakat va bitta muvaffaqiyatsiz tunnelni boshqa ulanishlari qaytadan o‘rnatilishi kerak bo‘lgan mashinaga aylantiradi. To‘g‘ri qamrov — bitta interfeys va unga egalik qiluvchi unit. Undan kengroq narsa sodir bo‘lishidan oldin yozilgan sabab talab qiladi.
Unitni emas, tunnelni isbotlang
Yashil unit ishga tushish ketma-ketligi nol bilan chiqqanini bildiradi. Bu paket narigi tomonga yetganini bildirmaydi va hal qiluvchi siz mo‘ljallagandek sozlanganini ham bildirmaydi.
Tunnel orqali so‘rov yuboring va uni yaratgan holatni o‘qing:
systemctl is-active wg-quick@wg0
wg show wg0 latest-handshakes
ping -c 3 10.63.0.1
resolvectl query internal.example.netJavobsiz qo‘l berish hali ham tunnel shakllanganini va narigi tomon jim ekanini aytadi, bu hech qachon ishga tushmagan unitdan boshqa muammo. Unit holatini, qo‘l berishni va so‘rov natijasini bitta yozuvda saqlang, chunki ular mustaqil ravishda muvaffaqiyatsiz bo‘ladi va tizimni faqat ularning birikmasi tasvirlaydi.