tcpdump 是 Linux/Unix 系统的网络抓包分析神器。它能像监控摄像头一样,实时捕获流经网卡的数据包,并将这些二进制数据翻译成可读信息。无论是排查网络故障、分析协议交互,还是安全检测,它都是工程师工具箱里的“瑞士军刀”。--IT人家
tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ]
[ -c count ]
[ -C file_size ] [ -G rotate_seconds ] [ -F file ]
[ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ]
[ --number ] [ -Q|-P in|out|inout ]
[ -r file ] [ -V file ] [ -s snaplen ] [ -T type ] [ -w file ]
[ -W filecount ]
[ -E spi@ipaddr algo:secret,... ]
[ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]
[ --time-stamp-precision=tstamp_precision ]
[ --immediate-mode ] [ --version ]
[ expression ]
-i:指定网卡(如 -i eth0),-i any 监听所有接口
-c:限制抓包数量(如 -c 100 捕获100个包后停止)
-s:设置抓包长度(-s 0 捕获完整数据包)
-w:保存到文件(如 -w capture.pcap)
-d:把编译过的数据包编码转换成可阅读的格式
-e:用来显示源、目标ip的mac地址
-r: 读取文件分析
-n:禁用域名解析,直接显示IP
-l:开启行缓冲模式
-A/-X:ASCII或十六进制格式显示内容
host 192.168.1.100net 192.168.1.0/24port 80或port http2.协议过滤
tcp、udp、arp、rarp、icmp、ssh、telnet、ntp、ftp等等3.方向过滤
src、dst、src and dst、dst or src、in、out、inout4.逻辑组合
src host 192.168.1.100 and dst port 443tcpdump -i eth0 -U -w live.pcap
tcpdump -i eth0 -n 'src host 192.168.1.1 and (dst port 80 or 443) and tcp'
tcpdump -i eth0 -nn 'icmp and src host 192.168.1.100'
tcpdump -i eth0 -nnA 'port 80 and tcp and src host 192.168.1.100'
tcpdump -i eth0 -Q in -nn 'tcp port 22'
tcpdump -i eth0 -Q out -nn 'host 192.168.1.100' and icmp
等同于
tcpdump -i eth0 -nn 'dst host 192.168.1.100' and icmp
tcpdump -tttt -i eth0 'port 22'
-e 用来显示源、目标ip的mac地址
tcpdump -i eth0 -e 'arp'
tcpdump -i eth0 -n 'tcp and (port 80 or port 443)' -vvv
-vvv:获取更详细的输出信息
tcpdump -i eth0 -n 'tcp[tcpflags] & (tcp-syn) != 0 and tcp[tcpflags] & (tcp-ack) = 0'
tcpdump -i eth0 -l -A -s0 'port 80' | grep -i '192.168.1.100'
tcpdump -i eth0 -Q inout -nn 'host 192.168.1.100 and port 443' \
-C 100 -W 10 -w https_trace.pcap \
--time-stamp-precision nano \
-z gzip # 自动压缩完成文件