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.
İç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
# 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
# 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ı
# 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
# Ubuntu/Debian
sudo apt install iftop -y
# CentOS/AlmaLinux
sudo dnf install iftop -y
Temel Kullanım
# 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
# Ubuntu/Debian
sudo apt install nethogs -y
# CentOS/AlmaLinux
sudo dnf install nethogs -y
Temel Kullanım
# 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
# Ubuntu/Debian
sudo apt install nload -y
# CentOS/AlmaLinux
sudo dnf install nload -y
Temel Kullanım
# 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ü
sudo apt install bmon -y
bmon
# Tüm arayüzleri grafik olarak gösterir
ss — Soket İstatistikleri
# 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
# 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
# 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
# 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
# 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:
# 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.
İlgili Makaleler
Domain'i Sunucuya Yönlendirme: A, AAAA ve CNAME Rehberi
Domain'inizi sunucuya yönlendirin: A, AAAA, CNAME, MX ve TXT kayıt türleri, DNS yayılım süresi, dig/nslookup ile test ve sık yapılan hatalar.
Reverse DNS (PTR) Kaydı Ayarlama: E-posta ve Güvenlik
PTR kaydı nedir, e-posta teslimini ve güvenliği nasıl etkiler, REXE panelinde nasıl ayarlanır, dig -x ile doğrulama ve yaygın sorunlar.
Nameserver Değişikliği: Domain DNS Transferi Rehberi
Nameserver nedir, kayıt şirketinde NS nasıl değiştirilir, yayılım süresi, whois/dig ile kontrol ve yaygın kayıt şirketi arayüzleri rehberi.