Când o conexiune de rețea eșuează misterios, un webhook nu ajunge la destinație sau un apel API returnează erori de timeout, instrumentele de nivel înalt (precum curl sau ping) nu pot explica ce se întâmplă la nivelul cablului de rețea. tcpdump este cel mai puternic analizor de pachete de rețea în linie de comandă, capabil să intercepteze și să afișeze pachetele brute care traversează plăcile de rețea ale serverului.
Comanda standard de diagnostic în terminal
# Parametrii recomandați de producție:
# -i eth0 : Ascultă pe interfața de rețea specificată
# -nn : Nu rezolva IP-urile în hostname-uri și nu converti porturile în nume de servicii (evită lag-ul DNS)
# -s0 : Capturează întreg pachetul (snaplen complet fără trunchiere)
# -v : Mod detaliat (afișează TTL, ID pachet, flag-uri TCP)
sudo tcpdump -i eth0 -nn -v 'port 80 or port 443'
Filtrarea Traficului cu Expresii BPF (Berkeley Packet Filters)
Pe servere cu trafic intens, rularea tcpdump fără filtre produce milioane de linii pe secundă. Folosiți expresii specifice de filtrare:
| Filtru BPF | Ce Capturează |
|---|---|
host 192.168.1.50 |
Doar pachetele unde adresa IP sursă SAU destinație este 192.168.1.50. |
src host 10.0.0.5 and dst port 3306 |
Trafic inițiat de la IP-ul specificat către portul bazei de date MySQL. |
tcp[tcpflags] & (tcp-syn) != 0 |
Capturează exclusiv pachetele de inițiere a conexiunii (pachete SYN de handshake). |
icmp |
Doar pachete ICMP (cereri și răspunsuri de ping). |
Salvarea capturii pentru analiză grafică în Wireshark
# Flag-ul -w salvează pachetele brute în fișier binar standard PCAP:
sudo tcpdump -i any -nn -w /tmp/problema_retea.pcap 'port 443'
# Lăsați să ruleze câteva secunde, reproduceți bug-ul în aplicație, apoi opriți cu Ctrl+C.
# Fișierul .pcap poate fi descărcat pe laptopul local și deschis în Wireshark!