【linux】【tcpdump】linux之tcpdump抓包及wireshark分析详解 |
您所在的位置:网站首页 › cap文件解析工具 › 【linux】【tcpdump】linux之tcpdump抓包及wireshark分析详解 |
linux的tcpdump命令主要用于网络问题的调试中,通过抓取传输过程的数据包进行分析和调试。而wireshark则是一款功能强大,使用方便的数据包分析工具,tcpdump+wireshark组合使用,完美,perfect,让网络问题无处遁形。 目录 1 tcpdump及wireshark基本介绍 1.1 tcpdump 1.2 wireshark 2 tcpdump抓包 2.1 常用命令 2.1.1 默认启动 2.1.2 监视指定网络接口的数据包 2.1.3 监视指定主机的数据包 2.1.4 指定抓包数量 2.1.5 抓包精简显示 2.1.6 按照协议类型抓包 2.1.7 指定主机和端口号进行抓包 2.1.8 抓包并保存 2.2 tcpdump详细参数 3 wireshark导入数据包进行分析 1 tcpdump及wireshark基本介绍 1.1 tcpdumptcpdump是基于Unix系统的命令行式的数据包嗅探工具,可以抓取流动在网卡上的数据包。默认情况下,tcpdump不会抓取本机内部通讯的报文。根据网络协议栈的规定,对于报文,即使是目的地是本机,也需要经过本机的网络协议层,所以本机通讯肯定是通过API进入了内核,并且完成了路由选择。 linux抓包原理: Linux抓包是通过注册一种虚拟的底层网络协议来完成对网络报文(准确的说是网络设备)消息的处理权。当网卡接收到一个网络报文之后,它会遍历系统中所有已经注册的网络协议,例如以太网协议、x25协议处理模块来尝试进行报文的解析处理,这一点和一些文件系统的挂载相似,就是让系统中所有的已经注册的文件系统来进行尝试挂载,如果哪一个认为自己可以处理,那么就完成挂载。当抓包模块把自己伪装成一个网络协议的时候,系统在收到报文的时候就会给这个伪协议一次机会,让它来对网卡收到的报文进行一次处理,此时该模块就会趁机对报文进行窥探,也就是把这个报文完完整整的复制一份,假装是自己接收到的报文,汇报给抓包模块。 1.2 wiresharkwireshark是一种数据包分析工具,在各种网络应用中,比如通过思博伦的Spirent_TestCenter(TC)、Ixia测试仪抓取接口报文或者利用本文介绍的linux自带的tcpdump监听抓包工具,抓包后导出报文再导入wireshark工具中进行图形化分析。 2 tcpdump抓包 2.1 常用命令 2.1.1 默认启动# tcpdump 普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。但是由于linux默认网卡的问题,可能出现下面报错: tcpdump: packet printing is not supported for link type NFLOG: use -w 此时,可以通过ifconfig或者ip address命令查看网卡信息,并通过指定网口进行数据抓包 # tcpdump -i ens33 指定通过网口ens33, 并且进出口IP地址为10.193.12.119的数据包 # tcpdump -i ens33 host 10.193.12.119 指定通过网口ens33, 并且主机10.193.12.12 和主机10.193.17.4 或10.193.12.119之间的通信 # tcpdump -i ens33 -n host 10.193.12.12 and \( 10.193.17.4 or 10.193.12.119 \) 指定通过网口ens33, 并且主机10.193.12.12 和非主机10.193.17.4之间的通信 # tcpdump -i ens33 -n host 10.193.12.12 and ! 10.193.17.4 指定通过网口ens33, 并且由主机10.193.12.12发送的所有数据 # tcpdump -i ens33 -n src 10.193.12.12 指定通过网口ens33, 并且由主机10.193.12.12接收的所有数据 # tcpdump -i ens33 -n dst 10.193.12.12 指定通过网口ens33, 并且由主机10.193.12.12接收的连续5个数据包 # tcpdump -i ens33 -n dst 10.193.12.12 -c 5 # tcpdump -i ens33 -n dst 10.193.12.12 -c 5 -q 指定通过网口ens33, 并且由主机10.193.12.12接收的连续5个数据包,并采用精简显示,可与上图进行对比 以ping为例,我们知道ping的协议类型为icmp,我们可以指定icmp协议类型进行抓包 # tcpdump -i ens33 -n icmp 指定网卡ens33,端口号为55555并且ip地址为10.193.12.12的连续10个数据包 # tcpdump -i ens33 -n tcp port 55555 and host 10.193.12.12 -c 10 抓包并保存package.cap文件,可导出后再导入wireshark进行包分析 # tcpdump -i ens33 -n port 55555 and host 10.193.12.12 -c 10 -w package.cap
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |