Aktarılan toplam ağ trafiğini belirli bir arabirimde nasıl izleyebilirim


2

Belirli bir arabirimden (mobil geniş bant güvenlik cihazı) geçen trafik miktarını izlemem gerekir, böylece toplam belirli bir miktara ulaştığında (veya yakına geldiğinde) bilgilendirilirim.

Çok cömert olmayan bir sınıra kadar pratik olarak ücretsiz mobil geniş bant kullandım ve dongle'ı kullanmak istediğimde her zaman bir senaryo başlatmak istiyorum ve ya limitime yaklaştığında beni uyarmasını istiyorum ya da bıraktığımda toplamı senaryo.

Şu anda yardıma ihtiyacım olan tek şey, toplam aktarımı insan tarafından okunabilir değerlere kaydetmek için, yani "İzleme başladıktan sonra 12,8Mb aktardınız" Birikimli toplam dışında hız, kullanım veya herhangi bir şey umrumda değil.

Toplam aktarımı hesaplamanın bir yolunu bulduğumda, arayüzünü güvenlik duvarı kurmak ve söyleyene kadar daha fazla aktarımı önlemek için bazı ipfw komutlarını mutlu bir şekilde atabilirim.

Mac OS X 10.7 kullanıyorum, ancak bir bash betiğinde (netstat, tcpdump, önceden yüklenmişse) standart terminal komutlarını kullanmak istiyorum ve indirilmiş bir aracı kullanmayın (işi mükemmel yapsa bile - bir betiğe ihtiyacım var. Kendi mantığımı istediğim gibi etrafına koyabilirim).

Yanıtlar:


1

Bunun için OSX'in bir parçası olan paket filtresini (PF) kullanabilirsiniz. İlk olarak, arabirimdeki tüm trafiği etiketleyen bir kural oluşturun ( bu örnekte en1 - gerçek arabiriminizle değiştirin):

echo "pass on en1 label \"traffic-en1\"" | sudo pfctl -f-
sudo pfctl -E # enable PF

Artık trafik sayılıyor ve sayaçları şu şekilde görüntüleyebilirsiniz sudo pfctl -sl:

traffic-en1 4701 69 13029 40 6292 29 6737

Bunları daha insan dostu bir formata dönüştürmekten çekinmeyin:

sudo pfctl -sl | awk '$1="traffic-en1" { printf "KBytes total: %d (in: %d, out: %d)\n", $4/1024, $6/1024, $8/1024 }'

Ki size böyle bir şey vermeli KBytes total: 192 (in: 95, out: 97).

Sayacı sıfırlayabilirsiniz sudo pfctl -z.

Not: OS X, pfctl'yi çağırırken "çekirdekte ALTQ desteği yok, ALTQ ile ilgili işlevler devre dışı" hakkında şikayette bulunabilir - bu tamamen normaldir ve göz ardı edilmesi güvenlidir.

Not 2: Uzaktan güvenlik duvarı ayarlarıyla oynamanız önerilmez, ancak en kötü durumda pfctl -d(bir şekilde kendinizi kilitlediyseniz) her şeyi devre dışı bırakır.


Bu harika, çok teşekkürler. Yaptığım en iyi şey, her paketin uzunluk alanını tcpdump'tan çekip, hepsini anında toplamaya çalışmaktı. Bu, hem sayımı yapmanın hem de bunun üzerinde hareket etmenin zor olduğu anlamına geliyordu. Yöntemin her yönden üstün. Ben ne olursa olsun TCP / UDP, tüm trafiği yakalar ve değil MTU vb fiili paket uzunluğunu kaydeden tahmin
Stuffe

1
Evet, örnek kural her şeyle eşleşir, ancak daha spesifik kurallar da yapabilirsiniz. Arabirim üzerinden gönderilen gerçek baytları sayar. Özellikle pfctl -sletiketten sonra çıkan sayılar şunlardır: değerlendirmeler, toplam paket sayısı, toplam bayt sayısı, paket girişi, bayt girişi, paket çıkışı, bayt çıkışı
Ingmar Hupp
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.