linux 网络管理之tcpdump命令详解

您所在的位置:网站首页 tcpdump到文件 linux 网络管理之tcpdump命令详解

linux 网络管理之tcpdump命令详解

#linux 网络管理之tcpdump命令详解| 来源: 网络整理| 查看: 265

一、tcpdump的作用

tcpdump 是linux环境的网络数据采集分析工具, 也就是所谓的抓包工具,与tcpdump只有命令行格式不同,Windows有个图形可视化工具Wireshark 所谓的抓包工具就是从网络数据包中抓取我们需要的数据包,就需要定义一些过滤器,从庞大的网络流量中抓取符合条件的目标数据包,学习抓包工具的使用其实就是了解怎么定义和使用过滤规则

二、语法格式 [root@host114 home]# tcpdump -h tcpdump version 4.9.3 libpcap version 1.9.1 (with TPACKET_V3) OpenSSL 1.1.1k FIPS 25 Mar 2021 Usage: tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ] [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ] [ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ] [ -Q in|out|inout ] [ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ] [ --immediate-mode ] [ -T type ] [ --version ] [ -V file ] [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ] [ expression ]

参数说明

-a #将网络地址和广播地址转变成名字 -A 以ASCII码方式显示每一个数据包 -b #数据链路层上选择协议,包括ip/arp/rarp/ipx都在这一层 -c 指定收取数据包的次数,在收到指定数量的数据包后退出tcpdump -d 将匹配信息包的代码以人们能够理解的汇编格式输出 -dd #将匹配信息包的代码以c语言程序段的格式输出 -ddd #将匹配信息包的代码以十进制的形式输出 -D #打印系统中所有可以监控的网络接口 -e 每行的打印信息包括数据链路层的头部信息 -f #将外部的Internet地址以数字的形式打印出来,即不显示主机名 -F #从指定的文件中读取表达式,忽略其他的表达式 -i 指定tcpdump 需要监听的接口 -l #使标准输出变为缓冲形式,可以数据导出到文件 -L #列出网络接口已知的数据链路 -n #不把网络地址转换为名字 -N 不输出主机名中的域名部分,例如www.baidu.com只输出www -nn #不进行端口名称的转换 -P #不将网络接口设置为混杂模式 -q #快速输出,即只输出较少的协议信息 -r #从指定的文件中读取数据,一般是-w保存的文件 -w #将捕获到的信息保存到文件中,且不分析和打印在屏幕 -s #从每个组中读取在开始的snaplen个字节,而不是默认的68个字节 -S #将tcp的序列号以绝对值形式输出,而不是相对值 -T #将监听到的包直接解析为指定的类型的报文,常见的类型有rpc(远程过程调用)和snmp(简单网络管理协议) -t #在输出的每一行不打印时间戳 -tt #在每一行中输出非格式化的时间戳 -ttt #输出本行和前面以后之间的时间差 -tttt #在每一行中输出data处理的默认格式的时间戳 -u #输出未解码的NFS句柄 -v #输出稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息 -vv#输出相信的保报文信息 三、参数解析

图片来自网络,把过滤规则分为几类:按协议、按类型、按数据流向

协议过滤:包括 tcp, udp, icmp, ip, ip6, arp, rarp,ether 类型过滤:包括host, net, port, portrange 流向过滤:包括src, dst 还可以用以上几种类型组合成过滤条件:当用到多个过滤器进行过滤时,有可能用到括号,而括号在shell中是特殊符号,还需要在括号外添加引号 3.1 显示数据包的头部 -x:以16进制的形式打印每个包的头部数据(但不包括数据链路层的头部) -xx:以16进制的形式打印每个包的头部数据(包括数据链路层的头部) -X:以16进制和 ASCII码形式打印出每个包的数据(但不包括连接层的头部),这在分析一些新协议的数据包很方便。 -XX:以16进制和 ASCII码形式打印出每个包的数据(包括连接层的头部),这在分析一些新协议的数据包很方便。 3.2 控制时间的显示 -t:在每行的输出中不输出时间 -tt:在每行的输出中会输出时间戳 -ttt:输出每两行打印的时间间隔(以毫秒为单位) -tttt:在每行打印的时间戳之前添加日期的打印(此种选项,输出的时间最直观) 3.3 常用的逻辑表达式 非 : ! or "not" 且 : && or "and" 或 : || or "or" 四、输出解析

输出实例

20:52:07.384759 IP 192.168.190.113.45020 > 439e3f58d19ff2d.samdom.znas.com.ssh: Flags [P.], seq 1405:1441, ack 2334348, win 9155, options [nop,nop,TS val 2882487051 ecr 3923644672], length 36 第一列:抓包时间,如果在输出的每一行不打印时间戳,可以添加-t 第二列:使用的网络协议 第三列:源地址和端口号,可能是主机名或者IP地址 第四列的箭头> :表示数据流向 第五列:目的地址和端口号 第6列:冒号 第7列:剩余数据为数据包内容,包括Flags标识符号、seq序列号、ack号、Win窗口、以及最后表示的数据长度 Flag 标识 [S] : SYN(开始连接) [P] : PSH(推送数据) [F] : FIN (结束连接) [R] : RST(重置连接) [.] : 没有 Flag (意思是除上面四种类型外的其他情况,有可能是 ACK 也有可能是 URG) 五、使用实例 tcpdump 默认抓取流经第一个网络接口的数据包 [root@host114 home]# tcpdump dropped privs to tcpdump tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enp2s1, link-type EN10MB (Ethernet), capture size 262144 bytes 20:58:50.538560 IP 439e3f58d19ff2d.samdom.znas.com.ssh > 192.168.190.113.45020: Flags [P.], seq 4119706794:4119707022, ack 374 5487054, win 304, options [nop,nop,TS val 3924048273 ecr 2882890622], length 228 20:58:50.538760 IP 192.168.190.113.45020 > 439e3f58d19ff2d.samdom.znas.com.ssh: Flags [.], ack 228, win 9155, options [nop,nop ,TS val 2882890652 ecr 3924048273], length 0 tcpdump -i 网络接口 抓取流经指定网络接口的数据包 [root@host114 home]# tcpdump -i enp2s1 dropped privs to tcpdump tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enp2s1, link-type EN10MB (Ethernet), capture size 262144 bytes 20:59:29.768941 IP 10.229.37.245.57553 > 228.0.168.245.ha-cluster: UDP, length 202 20:59:29.775424 IP 439e3f58d19ff2d.samdom.znas.com.48620 > 192.168.190.129.49159: Flags [P.], seq 114548774:114548942, ack 298 308690, win 253, options [nop,nop,TS val 3618941989 ecr 52696109], length 168 20:59:29.776702 IP 192.168.190.129.49159 > 439e3f58d19ff2d.samdom.znas.com.48620: Flags [P.], seq 1:217, ack 168, win 513, opt ions [nop,nop,TS val 52700349 ecr 3618941989], length 216 20:59:29.776767 IP 439e3f58d19ff2d.samdom.znas.com.48620 > 192.168.190.129.49159: Flags [.], ack 217, win 261, options [nop,no p,TS val 3618941991 ecr 52700349], length 0 tcpdump host 指定IP 抓取流经指定IP的数据包,此时默认是流经当前主机第一个网络接口的数据包,示例是enp2s1 [root@host114 home]# tcpdump host 192.168.190.126 dropped privs to tcpdump tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enp2s1, link-type EN10MB (Ethernet), capture size 262144 bytes 21:01:32.179594 IP 192.168.190.126.55203 > 439e3f58d19ff2d.samdom.znas.com.ctdb: Flags [S], seq 636612926, win 29200, options [mss 1460,sackOK,TS val 1754330146 ecr 0,nop,wscale 7], length 0 21:01:32.179659 IP 439e3f58d19ff2d.samdom.znas.com.ctdb > 192.168.190.126.55203: Flags [R.], seq 0, ack 636612927, win 0, leng th 0 tcpdump host 192.168.190.126 -X -X以十六进制和ASCII格式显示数据包的头部 09:36:31.833101 IP BHBGSTOR01.58048 > 10.2.32.11.ldap: UDP, length 104 0x0000: 4500 0084 8e77 4000 4011 5857 0a02 1f8c E....w@[email protected].... 0x0010: 0a02 200b e2c0 0185 0070 541c 3066 0203 .........pT.0f.. 0x0020: 008b 9363 5f04 000a 0100 0a01 0002 0100 ...c_........... 0x0030: 0201 0001 0100 a040 a30d 0405 4e74 5665 [email protected] 0x0040: 7204 0406 0000 00a3 2204 0944 6e73 446f r......."..DnsDo 0x0050: 6d61 696e 0415 4342 4842 2e52 4f4f 542e main..CBHB.ROOT. 0x0060: 4342 4842 414e 4b2e 4e45 54a3 0b04 0341 CBHBANK.NET....A 0x0070: 4143 0404 0000 0000 300a 0408 4e65 744c AC......0...NetL 0x0080: 6f67 6f6e ogon 条件组合过滤抓包 多个条件组合,括号外须用引号 tcpdump '((tcp) and (port 80) and ((dst 192.168.190.113) or (dst host 192.168.1.1)))' 六、参考资料 全网最详细的 tcpdump 使用指南


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3