A practical cheat sheet: capture basics, common filters, and everyday recipes.
tcpdump is a command-line packet analyzer using libpcap.
You can capture live traffic, apply BPF filters, and save captures to .pcap for analysis in Wireshark.
sudo apt update
sudo apt install tcpdump
sudo yum install tcpdump
sudo dnf install tcpdump
tcpdump -D
sudo tcpdump -i eth0
sudo tcpdump -i eth0 -c 50
sudo tcpdump -i eth0 -w capture.pcap
tcpdump -r capture.pcap
sudo tcpdump -i eth0 -nn
sudo tcpdump -i eth0 -A
sudo tcpdump -i eth0 -X
sudo tcpdump -i eth0 -vvv
sudo tcpdump -i eth0 -s 0 -w full.pcap
sudo tcpdump -i eth0 -B 8192 -nn
sudo tcpdump -i eth0 -nn
tcpdump [options] <filter>
net 10.0.0.0/8
host 192.168.1.10
src host 192.168.1.10
dst host 192.168.1.10
port 53
src port 443
dst port 22
portrange 10000-20000
tcp
udp
icmp
arp
ip6
host 192.168.1.10 and udp port 53
tcp port 22 or tcp port 3389
not host 10.0.0.5
not port 3389
tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack == 0
tcp[tcpflags] & tcp-rst != 0
tcp[tcpflags] & tcp-fin != 0
vlan
vlan and ip
vlan 100
sudo tcpdump -i eth0 -nn -A tcp port 80
sudo tcpdump -i eth0 -nn udp port 53
sudo tcpdump -i eth0 -nn tcp port 443
sudo tcpdump -i eth0 -nn icmp
sudo tcpdump -i eth0 -nn host 192.168.1.10 -w host_192.168.1.10.pcap
-B capture buffer (kernel memory)-B allocates a larger capture buffer (in KiB) and often reduces drops.
-B 4096 (4 MB) – light/medium traffic-B 8192 (8 MB) – common default for busy links-B 16384 (16 MB) – high-throughput / bursty trafficsudo tcpdump -i eth0 -nn -B 8192
-w capture.pcap to avoid terminal overhead on heavy traffic.
tcpdump prints capture statistics when it stops (Ctrl+C). Look for: packets dropped by kernel
123456 packets captured 123789 packets received by filter 333 packets dropped by kernel
-B doesn’t reduce drops as expected, check socket buffer limits.
sysctl net.core.rmem_max sysctl net.core.rmem_default
# Example only: values depend on your environment sudo sysctl -w net.core.rmem_max=33554432 sudo sysctl -w net.core.rmem_default=33554432
sudo tcpdump -i eth0 -nn -s 0 -B 16384 -w capture.pcap
-nn while troubleshooting: name resolution can slow down and clutter output.-s 0 when writing pcaps for later analysis (prevents truncated payloads).-A on busy links: it can output a lot of data quickly.