cgmon: Routeringizning interneti bilan aslida nima sodir bo’lmoqda

Agar sizda uyda yoki ofisda OpenWrt / ImmortalWrt router bo’lsa va bu sizning internet-provayderingizmi, routeringizmi yoki veb-saytmi, deb o’ylagan bo’lsangiz, o’qishni davom eting. cgmon — bu routeringiz uchun bepul, ochiq kodli dastur (GPL-3.0): taxminan 1-2,5 MB hajmdagi bitta fayl, 3-5 MB xotira, butun tarmoq holati ko’rsatilgan veb-sahifa va Telegram bildirishnomalari. U hatto 64 MB xotiraga ega eski TP-Linkda ham ishlaydi. U standart dasturiy ta’minot ustiga o’rnatiladi va sukut bo’yicha faqat monitorlarni boshqaradi.

cgmon

Asosiysi: cgmon boshqa yo’riqnoma emas, balki dispetcher

Birorta ham paket cgmon orqali o’tmaydi. Trafik hali ham Linux yadrosi tomonidan uzatiladi — xuddi shu yo’nalishda va cgmonsiz bo’lgani kabi tezlikda. Dastur shunchaki kuzatib boradi va kerak bo’lganda yadroga yangi ko’rsatmalar beradi — dasturiy ta’minot qoidalari bilan bir qatorda o’z qoidalarini ham beradi:

  • nftables — xavfsizlik devori yonidagi o’z jadvallaringiz: trafikni hisobga olish, ulanish yorliqlari, shlyuz xaritalari. Xavfsizlik devori qoidalari o’zgarishsiz qoladi va xavfsizlik devori qayta ishga tushmaydi;
  • Marshrutlash — ip rule ulanish yorliqlari, o’z marshrut jadvallari, standart shlyuzni o’zgartirish orqali;
  • tc — SQM navbati va qaytish shakllantiruvchi tezligi;
  • DNS — faqat DNS sug’urtasi favqulodda rejimida.

Cgmon shuningdek, yadro resurslaridan foydalangan holda monitoring qiladi: netlink orqali conntrack va nftables hisoblagichlari, qo’l siqishlari va DNS javoblarining nusxalari, sysfs va ethtool dan port ma’lumotlari. Shuning uchun, cgmon to’xtab qolsa yoki ishdan chiqsa ham, internet aloqasi uzilib qolmaydi: yadro eng so’nggi qoidalarga muvofiq ishlashda davom etadi.

Imkoniyatlar

  • WAN holatini rostlang. TCP 443 har bir necha soniyada IPv4 va IPv6 orqali tekshiradi. Agar IPv4 ishlamay qolsa, lekin IPv6 ishlayotgan bo’lsa, jurnal «nimadir buzilgan» emas, balki internet-provayderning CGNAT bilan bog’liq muammo haqida xabar beradi.
  • Down detektori va aybdorni aniqlash. cgmon haqiqiy mijoz ulanishlarini ko’radi va internet ishlayotgan paytda bitta xizmat javob bermayotganini sezadi. Agar butun protokol nosoz bo’lsa, yo’riqnoma yaxshi va yomon saytlarga yo’lni kuzatib boradi va barcha yomon yo’nalishlar o’tadigan ISP ulanish nuqtasini aniqlaydi.
  • Portlar va kabellar. Aloqa uzilishlari, CRC xatolari, «port 1000 o’rniga 100 da ishlayapti» — har bir port uchun, hatto o’rnatilgan kommutatordagi portlar uchun ham. Nosoz kabel to’liq ishdan chiqishidan oldin uni aniqlash mumkin.
cgmon
  • Qurilmalar. Joriy tezlik, soatlik va kunlik trafik, DHCP, mDNS, NetBIOS va UPnP nomlari. Grafik routerning o’zida (har kuni) saqlanadi; eng yuqori nuqta ustida kursorni ushlab turish uni kim keltirib chiqarganini ko’rsatadi.
  • cgfinder. Chet el IP-manzillariga ega qurilmalarni topadi: statik IP-manzilga ega eski kamera, DHCP-siz kalit. «Ochiq kirish» tugmasi ularga uydagi istalgan kompyuterdan bir soat davomida kirish imkonini beradi.
cgmon
  • Shlyuz xaritalari. Har bir tarmoq o’zining internet ulanishidan foydalanadi: mobil modem orqali mehmon tarmog’i, asosiy ulanish orqali kameralar va boshqa shahardagi router orqali televizor — ishlamay qolgan taqdirda, ro’yxatdagi keyingisi ishlatiladi. Bular hatto standart BusyBox bilan ham ishlaydi.
cgmon
  • Zaxira kanali. Shlyuzlar avtomatik ravishda topiladi (PPPoE, DHCP, LTE modem), cgmon asosiy yo’nalishni faol yo’nalishga o’tkazadi.
  • DNS sug’urtasi. Agar veb-sayt provayderlaridan biri IPv6 xizmati yomon bo’lsa, mijozlar darhol IPv4 ga o’tadilar — hech qanday uzilishlarsiz.
  • SQM va yuklash tezligini belgilovchi vosita boshqa birov yuklab olayotganda pingingiz oshmasligini anglatadi; internet-provayderingiz yuklash tezligining pastligi uchun sizni jazolamaydi.
  • Pullik trafik cheklovlar bilan bepul tarmoqlardan tashqari hamma narsa uchun hisoblagichdir.
  • Ma’lumotlarni yig’ish markazi. Bir nechta marshrutizatorlar (uy, dacha, ota-onalar) holat hisobotlarini bitta markazga yuboradi. U «mening internet-provayderim ishlamayapti» va «hammaning tashqi havolasi ishlamayapti» o’rtasidagi farqni ajratib, ularni Telegramga joylashtiradi. Hisobotlar shifrlangan (AES-256-GCM).
cgmon

Uchta yig’ilish

  • to’liq — hamma narsa, x86 va kuchli ARM uchun.
  • lite — SmartDNS (manzilga asoslangan DNS sug’urtasi va marshrutni chetlab o’tish) dan tashqari hamma narsa.
  • nano — kichik chaqnash xususiyatiga ega zaif routerlar uchun: u allaqachon dasturiy ta’minotda mavjud bo’lgan narsalar bilan ishlaydi va aqlli navbat yetkazib berilishi mumkin (taxminan 240 KB).

Agar routerdagi funksiyada paket bo’lmasa, cgmon ishlamay qoladi va boshqa funksiyalarga xalaqit bermaydi: sozlama kulrang rangda va «Joriy hodisalar» da » O’rnatish » tugmasi mavjud.

Arxitekturalar: x86_64, i686, aarch64, ARMv7, ARMv5, MIPS va MIPSel — x86 serveridan TL-WR1043ND va MT7621 routerlarigacha.

O’rnatish

Paket (OpenWrt / ImmortalWrt 25.x):

cd /tmp
wget https://github.com/real4root/cgmon/releases/download/v2.4.21/cgmon-lite-2.4.21-r1-aarch64.apk
apk add --allow-untrusted cgmon-lite-2.4.21-r1-aarch64.apk

OpenWrt 24.10 va undan keyingi versiyalarida fayllar .ipk va opkg install. Paket boshqa protsessor uchun o’rnatilmaydi, shuning uchun xato qilish qiyin. Sizning arxitekturangiz /etc/openwrt_release da ko’rinadi (DISTRIB_ARCH qator).

Sahifa darhol ochiladi: http://<адрес роутера>/status.html. Sozlamalarni o’zgartirish uchun parol LuCI: Services → cgmon da o’rnatilgan. Parolsiz sahifada faqat ma’lumotlar ko’rsatiladi.

Xavfsiz rejim

O’rnatishdan so’ng, cgmon hech narsani bloklamaydi, hech narsani shakllantirmaydi va hech qayerga ma’lumotlarni yubormaydi. Gateway kommutatsiyasi, navbat, shakllantiruvchi va yig’ish markazi barchasi aniq yoqilgan.

Havolalar

Manba kodi, hujjatlar va barcha tuzilishlar: https://github.com/real4root/cgmon