Ana içeriğe geç
Kategoriye Dön

Bandwidth ve Trafik İzleme: vnstat, iftop, nethogs Rehberi

vnstat ile geçmiş istatistikler, iftop ile gerçek zamanlı izleme, nethogs ile süreç bazlı bant genişliği, nload kullanımı ve sonuçları yorumlama.

Okuma süresi: 13 dk Ağ & DNS
bandwidth izlemevnstatiftopnethogsnloadağ trafiğibant genişliğilinux ağ araçları

İçindekiler

Bandwidth ve Trafik İzleme: vnstat, iftop, nethogs Rehberi

Sunucunuzun ağ trafiğini izlemek, performans sorunlarını tespit etmek, bant genişliği kullanımını optimize etmek ve anormal aktiviteleri fark etmek için kritik öneme sahiptir. Bu rehberde Linux'ta ağ trafiğini izlemek için kullanılan en popüler araçları — vnstat, iftop, nethogs ve nload — ele alacağız.

vnstat — Geçmiş Trafik İstatistikleri

vnstat, ağ arayüzlerinin trafik istatistiklerini veritabanında saklayan hafif bir araçtır. Sistem yeniden başlatılsa bile geçmiş verileri korur.

Kurulum

hljs bash
# Ubuntu/Debian
sudo apt update
sudo apt install vnstat -y

# CentOS/AlmaLinux
sudo dnf install vnstat -y

# Servisi başlat
sudo systemctl enable vnstat
sudo systemctl start vnstat

Temel Kullanım

hljs bash
# Tüm arayüzlerin özeti
vnstat

# Belirli arayüz
vnstat -i eth0

# Saatlik istatistikler
vnstat -h
vnstat -i eth0 -h

# Günlük istatistikler
vnstat -d
vnstat -i eth0 -d

# Aylık istatistikler
vnstat -m
vnstat -i eth0 -m

# Haftalık istatistikler
vnstat -w

# Canlı trafik (5 saniyede bir güncelleme)
vnstat -l
vnstat -i eth0 -l

# Son 5 saatin özeti
vnstat -h 5

# JSON çıktısı (script entegrasyonu için)
vnstat --json
vnstat -i eth0 --json

vnstat Çıktısını Okuma

                      rx      /      tx      /     total    /   estimated
 eth0:
       2024-01-15    1.23 GiB  /    456 MiB  /    1.67 GiB
       2024-01-16    2.45 GiB  /    789 MiB  /    3.24 GiB
  • rx: Alınan (download) trafik
  • tx: Gönderilen (upload) trafik
  • total: Toplam trafik
  • estimated: Ay sonu tahmini

vnstat Yapılandırması

hljs bash
# Yapılandırma dosyası
sudo nano /etc/vnstat.conf

# Önemli ayarlar:
# Interface "eth0"     # İzlenecek arayüz
# MaxBandwidth 1000    # Maksimum bant genişliği (Mbit/s)
# SaveInterval 5       # Kayıt aralığı (dakika)

# Veritabanını sıfırla
vnstat --delete --force -i eth0
vnstat --add -i eth0

iftop — Gerçek Zamanlı Bağlantı İzleme

iftop, hangi IP adresleriyle ne kadar trafik yapıldığını gerçek zamanlı olarak gösteren interaktif bir araçtır.

Kurulum

hljs bash
# Ubuntu/Debian
sudo apt install iftop -y

# CentOS/AlmaLinux
sudo dnf install iftop -y

Temel Kullanım

hljs bash
# Varsayılan arayüzde çalıştır
sudo iftop

# Belirli arayüz
sudo iftop -i eth0

# DNS çözümlemesini devre dışı bırak (daha hızlı)
sudo iftop -n

# Port numaralarını göster
sudo iftop -P

# Belirli ağı filtrele
sudo iftop -F 192.168.1.0/24

# Çıktıyı dosyaya kaydet
sudo iftop -t -s 10 > /tmp/iftop_output.txt

iftop Klavye Kısayolları

n  — DNS çözümlemesini aç/kapat
p  — Port numaralarını aç/kapat
P  — Duraklatma
s  — Kaynak adresi aç/kapat
d  — Hedef adresi aç/kapat
t  — Trafik yönünü değiştir (gelen/giden/her ikisi)
1  — 2 saniyelik ortalama
2  — 10 saniyelik ortalama
3  — 40 saniyelik ortalama
q  — Çıkış

iftop Çıktısını Okuma

                 12.5Kb          25.0Kb          37.5Kb          50.0Kb    62.5Kb
└────────────────────────────────────────────────────────────────────────────────
203.0.113.50   =>  203.0.113.1                    1.23Kb  2.45Kb  3.67Kb
                <=                                 4.56Kb  8.90Kb  12.3Kb
  • =>: Giden trafik (upload)
  • <=: Gelen trafik (download)
  • Üç sütun: 2s, 10s, 40s ortalamaları

nethogs — Süreç Bazlı Bant Genişliği

nethogs, hangi uygulamanın veya sürecin ne kadar bant genişliği kullandığını gösterir. Yüksek trafik oluşturan süreci bulmak için idealdir.

Kurulum

hljs bash
# Ubuntu/Debian
sudo apt install nethogs -y

# CentOS/AlmaLinux
sudo dnf install nethogs -y

Temel Kullanım

hljs bash
# Tüm arayüzleri izle
sudo nethogs

# Belirli arayüz
sudo nethogs eth0

# Birden fazla arayüz
sudo nethogs eth0 eth1

# Güncelleme aralığını ayarla (saniye)
sudo nethogs -d 2

# Trafik birimi (KB/s)
sudo nethogs -v 1

# Trafik birimi (MB/s)
sudo nethogs -v 2

# Trafik birimi (GB/s)
sudo nethogs -v 3

nethogs Çıktısını Okuma

NetHogs version 0.8.7

  PID USER     PROGRAM                      DEV        SENT      RECEIVED
 1234 www-data /usr/sbin/apache2            eth0       1.234     5.678 KB/sec
 5678 root     /usr/bin/wget                eth0       0.123     45.67 KB/sec
 9012 mysql    /usr/sbin/mysqld             eth0       2.345     1.234 KB/sec
  • PID: Süreç ID
  • USER: Süreci çalıştıran kullanıcı
  • PROGRAM: Uygulama adı
  • SENT: Gönderilen veri hızı
  • RECEIVED: Alınan veri hızı

nethogs Klavye Kısayolları

m  — Trafik birimini değiştir (KB/MB/GB)
r  — Alınan trafiğe göre sırala
s  — Gönderilen trafiğe göre sırala
q  — Çıkış

nload — Bant Genişliği Grafiği

nload, ağ trafiğini ASCII grafik olarak gerçek zamanlı gösteren basit bir araçtır.

Kurulum

hljs bash
# Ubuntu/Debian
sudo apt install nload -y

# CentOS/AlmaLinux
sudo dnf install nload -y

Temel Kullanım

hljs bash
# Varsayılan arayüz
nload

# Belirli arayüz
nload eth0

# Birden fazla arayüz (ok tuşlarıyla geçiş)
nload eth0 eth1

# Güncelleme aralığı (milisaniye)
nload -t 500

# Trafik birimi
nload -u h  # Human readable
nload -u m  # Mbit/s
nload -u k  # Kbit/s

nload Çıktısını Okuma

Device eth0 [203.0.113.50] (1/1):
================================================================================
Incoming:                                           Outgoing:

                                    ####
                              ######    ######
                        ######                ######

Curr: 1.23 MBit/s                              Curr: 456.78 KBit/s
Avg:  987.65 KBit/s                            Avg:  234.56 KBit/s
Min:  123.45 KBit/s                            Min:  45.67 KBit/s
Max:  2.34 MBit/s                              Max:  789.01 KBit/s
Ttl:  1.23 GByte                               Ttl:  456.78 MByte

Diğer Faydalı Araçlar

bmon — Bant Genişliği Monitörü

hljs bash
sudo apt install bmon -y
bmon
# Tüm arayüzleri grafik olarak gösterir

ss — Soket İstatistikleri

hljs bash
# Aktif bağlantıları listele
ss -tuln

# Bağlantı sayısını göster
ss -s

# Belirli porta göre filtrele
ss -tuln sport = :80

# Bağlantı durumlarını göster
ss -tan | awk '{print $1}' | sort | uniq -c | sort -rn

ip Komutu ile Trafik İstatistikleri

hljs bash
# Arayüz istatistikleri
ip -s link show eth0

# Tüm arayüzler
ip -s link

# Sürekli izleme
watch -n 1 'ip -s link show eth0'

/proc/net/dev ile Ham İstatistikler

hljs bash
# Anlık trafik istatistikleri
cat /proc/net/dev

# Belirli arayüz
grep eth0 /proc/net/dev

# Basit bant genişliği hesaplama scripti
#!/bin/bash
IFACE=eth0
RX1=$(grep $IFACE /proc/net/dev | awk '{print $2}')
TX1=$(grep $IFACE /proc/net/dev | awk '{print $10}')
sleep 1
RX2=$(grep $IFACE /proc/net/dev | awk '{print $2}')
TX2=$(grep $IFACE /proc/net/dev | awk '{print $10}')
echo "RX: $((($RX2-$RX1)/1024)) KB/s"
echo "TX: $((($TX2-$TX1)/1024)) KB/s"

Sonuçları Yorumlama

Anormal Trafik Tespiti

hljs bash
# Yüksek trafik oluşturan süreçleri bul
sudo nethogs eth0

# Şüpheli bağlantıları kontrol et
ss -tuln
netstat -tuln

# Dış IP bağlantılarını listele
ss -tn | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn

Bant Genişliği Kullanım Raporu

hljs bash
# Aylık kullanım özeti
vnstat -m

# Günlük kullanım grafiği
vnstat --oneline

# Tüm zamanların en yüksek kullanımı
vnstat --top10

vnstat'ı cron ile birleştirerek otomatik raporlar oluşturabilirsiniz:

hljs bash
# Her gün gece yarısı rapor gönder
0 0 * * * vnstat --json > /var/log/vnstat_daily.json

iftop ve nethogs root yetkisi gerektirir. Güvenlik açısından bu araçları yalnızca gerektiğinde çalıştırın ve çıktıları güvenli bir şekilde saklayın.

Sonuç

vnstat geçmiş trafik istatistikleri için, iftop gerçek zamanlı bağlantı izleme için, nethogs süreç bazlı bant genişliği analizi için, nload ise görsel trafik grafiği için idealdir. Bu araçları birlikte kullanarak sunucunuzun ağ trafiğini kapsamlı şekilde izleyebilir, anormal aktiviteleri tespit edebilir ve bant genişliği kullanımını optimize edebilirsiniz.