Bir soniyada tugaydigan qayta ulanish mijoz tezligini aytadi. Tunnel o’chirilganda biror narsa qochib ketganini aytmaydi. Bir daqiqa davom etadigan qayta ulanish mijoz sekin ekanini aytadi, va bo’shliqda to’g’ridan-to’g’ri trafikka ruxsat berilganini baribir aytmaydi. Bu ikki o’lchov, va faqat birinchisini xabar qiladigan kill switch sinovi kalitni sinamagan.

Ikki kuzatuv, ikki alohida hukm

Mavjudlik savoli oddiy: tunnel qachon yana ishlatila boshlandi va himoyalangan dastur u yerga yetish uchun yangi ulanishga muhtoj bo’ldimi. Ijro savoli boshqacha: himoya tushgan paytdan qaytgan paytgacha qaysi paketlar mashinadan chiqdi.

Ularga alohida yozuvlar bilan javob bering. Bir satr bo’shliq ma’lum soniya davom etganini aytadi. Boshqa satr o’sha bo’shliqda himoyasiz so’rov muvaffaqiyatli bo’lganini aytadi. Ularni bitta o’tdi yoki yiqildi natijasiga birlashtirish eng muhim holatni yashiradi: oqish bilan birga tez qayta ulanish.

Vaqtini o’lchash mumkin bo’lgan zond quring

Shunday so’rovdan foydalaning: zararsiz, arzon va tunnelning o’z boshqaruv kanalidan mustaqil. Quyidagi sikl sekundiga bir marta vaqt belgisi, HTTP holati va o’tgan vaqtni chop etadi va osilib qolish o’rniga baland ovozda muvaffaqiyatsizlikka uchraydi:

while true; do
  printf '%s ' "$(date +%H:%M:%S)"
  curl -sS -o /dev/null -w '%{http_code} %{time_total}\n' --max-time 2 https://example.com || echo "curl-exit-$?"
  sleep 1
done

Faqat holatni emas, curl chiqish kodlarini o’qing. 28 so’rov muddati tugaganini bildiradi, bloklangan yo’l shunday ko’rinadi. 6 nomlarni aniqlash muvaffaqiyatsiz bo’lganini bildiradi, bu boshqa topilma va ko’pincha qiziqarliroq. Bo’shliqda o’tgan vaqti qisqa 200 trafikka tashqariga chiqishga ruxsat berilganini bildiradi.

Natijani faylga yozing va saqlang. Terminal tarixi dalil emas, qiziqarli qism odatda o’rtadagi uchta satr.

Haqiqiy nosozlikni keltirib chiqaring, tartibli emas

Mijozning o’z menyusidan uzish kooperativ yo’lni sinaydi, unda mijozning bloklash qoidalarini o’rnatishga vaqti bo’ladi. Buning o’rniga jarayonni o’ldiring yoki pastdagi bog’lanishni uzing, shunda haqiqiy nosozlik bosib o’tadigan yo’lni sinaysiz.

Har bir trigger boshqa kod yo’lini mashq qildiradi. Server tomonidagi uzilish, mahalliy bog’lanish yo’qolishi va mijoz halokati har biri boshqa holat qoldirishi mumkin, va ulardan biri oxir-oqibat uchratadigan holatingiz bo’lishi ehtimoli yuqori. Zondni kamida ikki triggerda ishga tushiring va natijalarni trigger bo’yicha belgilang.

Ruxsat berilgan trafik qanday ko’rinishini jurnaldan o’qing

Bo’shliqda 200 yoki tez ulanish nosozligi oqishdir, qaysi tomonga qaramasin. Butun bo’shliq davomida vaqt tugashi bloklash siyosatining kutilgan shakli. Ulanishlar muvaffaqiyatsiz bo’lganda nomlarni aniqlash muvaffaqiyatli bo’lishi aniqlagich hali yetib borishini ko’rsatadi, bu boshqa turdagi oqish.

Mavjud soketlar ehtiyotkorlik talab qiladi. Dastur uzishdan oldin ochgan ulanishdan foydalanishda davom etishi mumkin, shuning uchun tirik ko’rinadigan trafik yangi yo’lga ruxsat berilganini isbotlamasligi mumkin. Soketlar ro’yxati ulanish voqeadan oldinmi-yo’qmi ko’rsatadi:

ss -tunp | grep -E 'ESTAB|SYN-SENT'
ip route get 198.51.100.7
resolvectl status | sed -n '1,20p'

Soketning boshlanish vaqtini uzish vaqt belgisi bilan solishtiring. Nosozlikdan eski ulanish oqishning emas, soket qayta ishlatilishining dalilidir, va uni nosozlik deb xabar qilish keyingi odamni mavjud bo’lmagan xatoni izlashga yuboradi.

Natijani yangilanishdan omon qoladigan shaklda yozing

Triggerni, soniyalarda bo’shliqni, bloklanmagan biror so’rov muvaffaqiyatli bo’lganini, nomlarni aniqlash muvaffaqiyatli bo’lganini, shuningdek mijoz va operatsion tizim versiyalarini yozing. Besh faktning bu to’plamini nashrlar orasida solishtirish mumkin, buni nasr paragrafi qila olmaydi.

Mijoz yangilangandan yoki profil o’zgarganidan keyin o’sha sinovni qayta ishga tushiring, chunki bloklash xatti-harakati joriy etish tafsiloti va u siljiydi. Yozuvning maqsadi siljishni hodisaga aylanishidan oldin payqash, mijozni bir marta sertifikatlash emas.

O'xshash maqolalar