Linux使用tcpdump抓取网络数据包示例
tcpdump是Linux命令行下常用的的一个抓包工具,记录一下平时常用的方式。 tcpdump的命令格式 tcpdump的参数众多,通过man tcpdump可以查看tcpdump的详细说明,这边只列一些常用的参数: tcpdump [-i 网卡] -nnAX ‘表达式’ 各参数说明如下: 下面进行一些命令测试,如果没有权限,可以先切换成root用户。 监听网卡eth0 $ tcpdump -i eth0 这个方式最简单了,但是用处不多,因为基本上只能看到数据包的信息刷屏,压根看不清,可以使用ctrl+c中断退出,如果真有需求,可以将输出内容重定向到一个文件,这样也更方便查看。 监听指定协议的数据 $ tcpdump -i eth0 -nn ‘icmp’ 这个是用来监听icmp协议的数据,就是ping命令使用的协议。类似的,如果要监听tcp或者是udp协议,只需要修改上例的icmp就可以了。ping下监听的机器,输出如下: 每一行的各个数据表示的含义: 抓到包的时间 IP 发包的主机和端口 > 接收的主机和端口 数据包内容 监听指定的主机 $ tcpdump -i eth0 -nn ‘host 192.168.0.101’ 这样的话,192.168.0.101这台主机接收到的包和发送的包都会被抓取。 $ tcpdump -i eth0 -nn ‘src host 192.168.0.101’ 这样只有192.168.0.101这台主机发送的包才会被抓取。 $ tcpdump -i eth0 -nn ‘dst host 192.168.0.101’ 这样只有192.168.0.101这台主机接收到的包才会被抓取。 监听指定端口 … Read more