Linux网络抓包方法tcpdump与wireshark
2019年09月04日

tcpdump 与wireshark

Wireshark(以前是ethereal)是Windows下非常简单易用的抓包工具。但在Linux下很难找到一个好用的图形化抓包工具。 还好有Tcpdump。我们可以用Tcpdump + Wireshark 的完美组合实现:在 Linux 里抓包,然后在Windows 里分析包。

Wireshark

yum install wireshark

简单用法

tshark -i eth0 port 6060

Tcpdump

yum install tcpdump

简单用法

tcpdump -i eth0 -s 0 -w /tmp/test.cap

然后使用wireshark进行解包分析,windows下下载路径:https://www.wireshark.org/


详细用法

tcpdump tcp -i eth1 -t -s 0 -c 100 \
  and dst port ! 22 \
  and src net 172.118.1.0/24 \
  -w ./target.cap

说明:

(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型 

(2)-i eth1 : 只抓经过接口eth1的包 

(3)-t : 不显示时间戳 

(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包 

(5)-c 100 : 只抓取100个数据包 

(6)dst port ! 22 : 不抓取目标端口是22的数据包 

(7)src net 172.118.1.0/24 : 数据包的源网络地址为172.118.1.0/24 

(8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析