tcpdump抓包工具
tcpdump是一款Linux网络抓包工具,支持功能较多如指定端口、地址、协议以及监听地址范围通信。
#抓包eth0控制报文
tcpdump -i eth0 -nn icmp
#监听特定网卡
Tcpdump -i en0
# 监听特定主机,监听主机 10.0.0.100 的通信包(出、入包)
tcpdump host 10.0.0.100
#特定来源
tcpdump src host hostname
# 特定目标地址
tcpdump dst host hostname
# 如果不能指定src 跟dst,那么来源或目标是hostname的通信都会被监听
tcpdump host hostname
#特定端口
tcpdump port 3000
# 监听TCP/UDP,服务器上不同服务分别用tcp、udp作为传输层,只想监听TCP数据包
tcpdump tcp
#来源主机+ 端口+TCP,监听来自主机10.0.0.100在端口22上的TCP数据包
tcpdump tcp port 22 and src host 10.0.0.100
#监听特定主机之间的通信
tcpdump ip host 10.0.0.101 and 10.0.0.102
# 监听10.0.0.101和除了10.0.0.1之外的主机之间的通信
tcpdump ip host 10.0.0.101 and ! 10.0.0.1
# 详细示例
tcpdump tcp –i eth1 -t –s 0 –c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
#限制抓包数量,如:抓到1000个包后自动退出
tcpdump -c 1000
# 保存到本地,tcpdump默认会将输出写到缓冲区,只有缓冲区内容达到一定大小,或 tcpdump 退出时,才会输出写到本地磁盘,可以加上 -U 强制立即写到本地磁盘(不建议,性能差)
tcpdump -n -vvv -c 1000 -w /tmp/tcpdump_save.cap
#指定端口号抓包,并显示报文内容
tcpdump port 8091 -i eth0 -nn -X -s0