Jak mogę uzyskać miesięczną grupę statystyk sieciowych według adresu IP na moim routerze linuxowym.
Mam w domu router z linuxem i chcę otrzymywać miesięczne informacje o statystykach sieciowych pogrupowane według pary adresów IP w następujący sposób:
192.168.1.x -> x.x.x.x ??? Bytes
y.y.y.y1 -> 92.168.1.y ??? Bytes
Wypuszczam wolne oprogramowanie i nie zabrania się samemu rozwijać. Odkryłem, że mogę użyć TUN / TAP lub libpcap, aby pobrać pakiety. Ale myśląc o synchronizacji wydajności i procesów, potrzebuję sugestii.
Dziękuję Ci.
linux
router
network-monitoring
neoedmund
źródło
źródło
Odpowiedzi:
Użyj czystych iptables.
Następnie napisz skrypt, który odczytuje liczniki z netfiltera za pomocą iptables.
I umieść ten skrypt
/etc/cron.monthly/
.źródło
Jeśli w ciągu miesiąca zabraknie wpisów, zwiększ liczbę 333000 do większej liczby.
Możesz także dodać -i eth0 między 1 a -j, aby ograniczyć go do 1 karty sieciowej.
natychmiast uzyska wyniki
Statystyki nie są dobre, jeśli nie zostały zapisane między restartami.
Jeśli twój router ma systemd: Uwaga: zmień ścieżkę pliku do swoich potrzeb -f /src/all.txt
Najpierw zmień ścieżkę. W ten sposób można przywrócić iptables
Teraz pozostało tylko cronjob
Pierwsza połowa zapisuje statystyki, a druga połowa oczyszcza je, aby rozpocząć nowy miesiąc od świeżości. Oczywiście nie musisz opróżniać, jeśli nie chcesz.
Możesz analizować wyniki tak, jak chcesz.
Końcowe wyniki:
źródło