iftop to jedno z najważniejszych narzędzi dla administratorów systemów Linux – pozwala na monitorowanie ruchu sieciowego w czasie rzeczywistym na poziomie poszczególnych połączeń między hostami.
W przeciwieństwie do narzędzi pokazujących wyłącznie statystyki interfejsów, iftop prezentuje rzeczywiste przepływy danych między konkretnymi parami hostów, dzięki czemu łatwiej wskazać źródła problemów z przepustowością.
Przegląd narzędzia iftop i jego znaczenie w administracji sieciowej
Historia i charakterystyka narzędzia
iftop to narzędzie wiersza poleceń stworzone przez Paula Warrena, którego pierwsza wersja ukazała się 29 marca 2002 roku. Nazwa łączy „interface” i „top”, nawiązując do klasycznego programu top, lecz monitoruje aktywność sieciową zamiast procesów.
Program jest dostępny na licencji GPLv2 lub nowszej i ma otwarty kod źródłowy, co ułatwia audyt i adaptację w środowiskach produkcyjnych.
Minimalny wpływ na zasoby systemowe oraz interaktywny interfejs czynią z iftop narzędzie idealne do szybkiej diagnostyki i dłuższych obserwacji – także w zdalnych sesjach SSH na serwerach bez środowiska graficznego.
Zastosowania praktyczne iftop
Gdy łącze „zwalnia”, iftop natychmiast wskaże, które pary hostów zużywają najwięcej przepustowości. To kluczowe przy anomaliach sieciowych, zanim sięgniesz po kosztowne, rozbudowane systemy monitoringu.
Świetnie sprawdza się na routerach i bramach, pozwalając rozpoznać zainfekowane hosty lub procesy działające w tle. W kontekście bezpieczeństwa pomaga wykrywać nieautoryzowany ruch i symptomy DDoS.
Instalacja iftop na różnych dystrybucjach Linuksa
Instalacja na systemach opartych na Debianie
W Debianie i Ubuntu iftop znajduje się w oficjalnych repozytoriach. Instalację wykonasz w kilku krokach:
- zaktualizuj indeks pakietów:
sudo apt update; - zainstaluj narzędzie:
sudo apt install iftop; - uruchom z uprawnieniami administratora:
sudo iftop.
W starszych wydaniach możesz użyć aptitude, jednak apt/apt-get pozostają najpopularniejsze.
Instalacja na systemach opartych na Red Hat
Na RHEL, CentOS i Fedora często potrzebne jest repozytorium EPEL (na RHEL/CentOS). Dla nowych wersji używaj dnf, dla starszych – yum. Poniższa tabela podsumowuje instalację:
| Dystrybucja | Menedżer pakietów | Dodatkowe repo | Polecenia |
|---|---|---|---|
| RHEL/CentOS 8 i starsze | yum | EPEL | sudo yum install epel-releasesudo yum install iftop |
| RHEL/CentOS 9 i nowsze | dnf | EPEL | sudo dnf install epel-releasesudo dnf install iftop |
| Fedora | dnf | — | sudo dnf install iftop |
Instalacja na Arch Linux i pochodnych dystrybucjach
W Arch Linux i pochodnych zainstalujesz iftop z oficjalnych repozytoriów: sudo pacman -S iftop.
Podstawowe użycie i interfejs użytkownika iftop
Uruchomienie narzędzia
Najprościej uruchomić: sudo iftop. Narzędzie wymaga uprawnień root, w przeciwnym razie pojawi się błąd:
Operation not permitted
Uruchamianie przez sudo to najlepsza praktyka bezpieczeństwa, bo nadaje uprawnienia tylko temu poleceniu, nie całej sesji.
Struktura wyświetlanego interfejsu
Ekran iftop składa się z trzech stref, które ułatwiają szybki odczyt:
- górna część – skala logarytmiczna działająca jak „prędkościomierz” dla aktualnej przepustowości,
- część środkowa – lista połączeń między parami hostów z kierunkiem i intensywnością ruchu,
- dolna część – zagregowane statystyki (TX/RX/TOTAL) i średnie z 2, 10 i 40 s.
Wiersz w sekcji głównej reprezentuje połączenie: po lewej host źródłowy, po prawej docelowy, a strzałki wskazują kierunek (=> wysyłanie, <= odbiór). Trzy kolumny po prawej pokazują średnie z 2/10/40 s.
Opcje i parametry wiersza poleceń
Najważniejsze przełączniki – skrócona ściągawka
Aby szybciej dobrać właściwe ustawienia, skorzystaj z tych najczęściej używanych opcji:
- -i – wskazanie interfejsu do monitorowania (np.
-i wlan0); - -n – wyłączenie reverse DNS (szybsze działanie, mniejszy narzut);
- -N – wyświetlanie numerów portów zamiast nazw usług;
- -P – pokazywanie portów źródłowych i docelowych przy każdym połączeniu;
- -b – wyłączenie słupków graficznych (mniej „kosztowny” rendering);
- -B – przełączanie jednostek z bitów/s na bajty/s;
- -m – ustawienie górnego limitu skali (np.
-m 100M); - -f – filtr ruchu w składni BPF (jak w tcpdump);
- -F/-G – filtr dla sieci IPv4/IPv6 w formacie CIDR;
- -o – sortowanie/agregacja (np.
-o 10s,-o source,-o destination); - -p – tryb promiscuous (przechwytywanie całego ruchu na interfejsie);
- -t – tryb tekstowy bez ncurses (jednorazowy zrzut na STDOUT);
- -c – użycie pliku konfiguracyjnego (np.
-c ~/.iftoprc).
Monitorowanie konkretnego interfejsu sieciowego
W systemach z wieloma interfejsami (np. eth0, enp0s3, wlo1) wskaż właściwy kartą -i:
sudo iftop -i wlan0
To kluczowe na serwerach z wieloma NIC i w środowiskach wirtualizacyjnych.
Wyłączenie rozpoznawania nazw hostów
-n wyłącza reverse DNS, przyspieszając działanie i redukując dodatkowy ruch do serwerów DNS. W praktyce warto uruchamiać iftop z -n domyślnie. Nazwy domenowe sprawdzisz później (np. dig, nslookup).
Wyświetlanie i konwersja portów
Użyj -P, aby pokazać porty; -N – aby pozostawić je wyłącznie w formie numerycznej (przydatne dla portów niestandardowych).
Wyłączenie wykresów słupkowych
-b wyłącza słupki – to dobry wybór przy wolniejszych sesjach SSH lub gdy kluczowa jest responsywność interfejsu.
Zmiana jednostek wyświetlanego ruchu
-B przełącza bity na bajty. Pamiętaj: 1 B = 8 b, więc wartości w bajtach są 8-krotnie mniejsze od tych w bitach.
Ograniczenie górnego zakresu skali
Ustaw -m, by lepiej uwidocznić niższe przepływy na szybkim łączu (np. -m 100M dla 100 Mbps).
Zaawansowane opcje filtrowania i sortowania
Filtrowanie ruchu sieciowego (BPF)
-f wykorzystuje składnię BPF (jak w tcpdump) i pozwala tworzyć precyzyjne filtry. Przykłady:
- ruch HTTP (port 80, tylko docelowy) –
sudo iftop -f "dst port 80"; - ruch do wskazanego hosta –
sudo iftop -f "dst host 8.8.8.8"; - ruch HTTP, z wykluczeniem hosta –
sudo iftop -f "port http and not host 192.168.1.11".
Filtrowanie na poziomie sieci
Ogranicz widok do podsieci w formacie CIDR (IPv4/IPv6) przy użyciu -F/-G, np.:
sudo iftop -F 192.168.1.0/24
Agregacja i sortowanie
Agreguj wg źródła lub celu i sortuj według średnich z różnych okien czasowych:
- agregacja wg źródła –
sudo iftop -o source; - agregacja wg celu –
sudo iftop -o destination; - sortowanie –
sudo iftop -o 2s,-o 10s(domyślnie),-o 40s.
Interaktywne sterowanie iftop
Klawisze skrótów do obsługi interfejsu
Poniżej najważniejsze skróty, które przyspieszają pracę na żywo:
- h / ? – ekran pomocy z listą skrótów;
- n – przełączanie między adresami IP a nazwami (reverse DNS);
- N – wyświetlanie numerów portów zamiast nazw usług;
- p – włącz/wyłącz pokazywanie portów przy połączeniach;
- Shift+S – przełącz porty źródłowe;
- Shift+D – przełącz porty docelowe;
- s – agregacja wg hosta źródłowego;
- d – agregacja wg hosta docelowego;
- t – tryb 2- lub 3-wierszowy (TX, RX, TOTAL);
- 1 / 2 / 3 – sortowanie wg kolumn 2s/10s/40s;
- < / > – sortowanie wg hostów źródłowych/docelowych;
- j / k – przewijanie listy połączeń;
- L – filtr wyświetlania (POSIX regex) bez zmiany statystyk;
- o – „zamrożenie” bieżącego porządku sortowania;
- P – pauza/wznowienie aktualizacji danych;
- T – włącz/wyłącz całkowite statystyki ruchu;
- f – wprowadzenie filtru BPF podczas działania.
Praktyczne przykłady wykorzystania iftop
Diagnozowanie problemów z przepustowością sieci
Uruchom sudo iftop, aby w kilka sekund zobaczyć, które połączenia „pożerają” najwięcej przepustowości (domyślne sortowanie wg 10 s). Po identyfikacji hosta zastosuj reguły zapory lub QoS, ograniczając problem u źródła.
Identyfikacja złośliwego oprogramowania
Nienaturalne połączenia do nieznanych hostów lub portów często wskazują na malware lub podejrzane procesy w tle. Zanotuj port, a następnie skojarz proces narzędziami netstat lub ss.
Monitorowanie ruchu aplikacji sieciowych
Skup się na konkretnych usługach (np. HTTPS 443, SMTP 25/587) filtrując ruch, aby potwierdzić zgodność z oczekiwanym profilem:
sudo iftop -f "port 443"
Weryfikacja poprawności konfiguracji sieci
Szybko sprawdzisz, czy QoS i polityki zapory działają zgodnie z założeniami oraz czy ruch trafia na właściwy interfejs.
Zaawansowane techniki monitorowania
Tryb promiscuous
-p włącza tryb promiscuous, w którym przechwytywany jest cały ruch na interfejsie – idealnie do analizy na przełącznikach z port mirroring lub na routerach.
Interfejs tekstowy bez ncurses
Użyj -t, aby uzyskać jednorazowy, parsowalny zrzut danych na standardowe wyjście, np. do logu lub potoku:
sudo iftop -t -i eth0 | grep 203.0.113.10 >> /var/log/iftop.log
Łatwe przetwarzanie wyjścia tekstowego sprzyja integracji ze skryptami i automatyzacją.
Plik konfiguracyjny
Załaduj ustawienia z pliku przez -c lub automatycznie z ~/.iftoprc. Przykładowa minimalna konfiguracja:
interface: eth0
dns-resolution: no
show-ports: yes
Stała konfiguracja oszczędza czas przy częstym uruchamianiu z tym samym zestawem opcji.
Porównanie iftop z innymi narzędziami monitorującymi sieć
Oto szybkie porównanie, które pomaga dobrać właściwe narzędzie do zadania:
| Narzędzie | Poziom obserwacji | Największa zaleta | Kiedy użyć |
|---|---|---|---|
| iftop | połączenia host–host | szybka diagnoza „kto z kim i ile” | identyfikacja źródeł obciążenia/przepustowości |
| nethogs | procesy lokalne | pokazuje, który proces zużywa pasmo | gdy chcesz wskazać aplikację winowajcę |
| nload | cały interfejs | czytelne wykresy całkowitego TX/RX | szybki podgląd ogólnej przepustowości |
| tcpdump | pakiety | głęboka inspekcja treści pakietów | szczegółowa analiza protokołów i zawartości |
| iptraf | różne protokoły/statystyki | bogaty interfejs i statystyki portów | szersza, wielowymiarowa obserwacja ruchu |
Rozwiązywanie problemów i optymalizacja
Powszechne problemy instalacyjne
Instalując z kodu źródłowego, możesz natrafić na błędy:
can’t find pcap.h
Can’t find ncurses library supporting mvchgat
Wskazują one na brak libpcap/libpcap-devel lub ncurses/ncurses-devel. Zainstaluj brakujące pakiety menedżerem dystrybucji (apt-get, yum, dnf, pacman) – zależności zostaną dociągnięte automatycznie.
Problemy z wydajnością
Najczęściej spowalnia reverse DNS – uruchamiaj z -n. Gdy pracujesz przez wolne SSH, włącz -b (bez słupków) lub użyj -t (tryb tekstowy).
Problemy z uprawnieniami
iftop wymaga uprawnień root. Uruchom: sudo iftop. W politykach restrykcyjnych możesz dodać regułę w /etc/sudoers, aby zezwolić wybranym użytkownikom na uruchamianie /usr/sbin/iftop bez hasła.
Najlepsze praktyki i zalecenia
Konsekwentne użycie opcji -n
Domyślnie uruchamiaj iftop z -n – szybciej działa i nie generuje dodatkowych zapytań DNS. Nazwy domen ustalisz innymi narzędziami (np. dig).
Wykorzystanie filtrów do zawężenia zakresu monitorowania
W gęstych środowiskach filtruj tylko to, co istotne, np.: sudo iftop -f "port http". Mniej szumu – szybsza diagnoza.
Regularne sprawdzanie anomalii
Znajomość „normalnego” profilu ruchu ułatwia szybkie wykrycie odchyleń, które mogą sygnalizować incydenty bezpieczeństwa.
Dokumentowanie wyników
Loguj z -t do pliku, aby porównywać historyczne wzorce i analizować incydenty po fakcie, np.: sudo iftop -t -i eth0 > /var/log/iftop-$(date +%F).log
Zaawansowane scenariusze wdrażania
Monitorowanie na bramach sieciowych i routerach
Najwięcej wglądu uzyskasz na punktach tranzytowych (bramy, routery). Włącz -p, aby obserwować cały ruch przechodzący przez interfejs – nie tylko pakiety adresowane lokalnie.
Integracja z systemami monitorowania
Zbieraj metryki do Nagios, Zabbix, Prometheus uruchamiając iftop w trybie tekstowym i parsując wyjście. To skuteczny sposób na długoterminowe trendy i alerty.
Zdalne monitorowanie poprzez SSH
Brak wymagań graficznych i interfejs tekstowy czynią iftop idealnym do zdalnej diagnostyki: zaloguj się przez SSH i uruchom sudo iftop, aby od razu zobaczyć, co dzieje się w sieci.








