Tcpdump使用方法总结

摘要:
1--Tcpdump简介本文跟踪Tcpdump最新版本,不定期更新选项解析和使用方法,截至目前,Tcpdump的最新版本是:tcpdump4.5.1和libpcap1.5.3。你应该把snaplen设的尽量小,只要能够容纳你需要的协议信息就可以了。设置snaplen参数值为0,即是设置为默认值65535。如果指定只获取数据报前10个字节,在输出时,会表明该数据包在以太网链路层数据被截断了:root@motadou:~#tcpdump-ieth0-n-t-s10tcpdump:verboseoutputsuppressed,use-vor-vvforfullprotocoldecodelisteningoneth0,link-typeEN10MB,capturesize10bytes[|ether][|ether]如果指定只获取数据报前20个字节,在输出时,会表明该数据包在IP层数据被截断了:root@motadou:~#tcpdump-ieth0-n-t-s20tcpdump:verboseoutputsuppressed,use-vor-vvforfullprotocoldecodelisteningoneth0,link-typeEN10MB,capturesize20bytesIP[|ip]IP[|ip]-t在每个输出行都不打印时间戳。
1 -- Tcpdump简介

本文跟踪Tcpdump最新版本,不定期更新选项解析和使用方法,截至目前(2014.01.28),Tcpdump的最新版本是:tcpdump4.5.1和libpcap1.5.3。

root@motadou:/home/motadou/apps/tcpdump/sbin# tcpdump -h
tcpdump version 4.5.1
libpcap version 1.5.3
Usage: tcpdump [-aAbdDefhHIJKlLnNOpqRStuUvxX] [ -B size ] [ -c count ]
               [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
               [ -i interface ] [ -j tstamptype ] [ -M secret ]
               [ -P in|out|inout ]
               [ -r file ] [ -s snaplen ] [ -T type ] [ -V file ] [ -w file ]
               [ -W filecount ] [ -y datalinktype ] [ -z command ]
               [ -Z user ] [ expression ]
2 -- Tcpdump选项函数说明
选项说明
-a将网络地址和广播地址转变成名字
-A以ASCII格式打印出所有分组,并将链路层的头最小化
-c count指定数据包的监听数量,当收到指定的包数量后,Tcpdump自动退出
-C file_size在将原始数据包写入文件之前,检查数据文件的大小,如果当前数据文件大于指定的file_size,Tcpdump将关闭当前文件,并重新创建一个编号紧随上个文件编号的新数据文件。该选项需要配合-w选项一起使用。必须注意file_size的单位是百万字节(1000000字节,而不是1048576字节)。
-d数据包的过滤条件经编译后,将其内部格式代码,以人们能够理解的汇编格式输出
-dd数据包的过滤条件经编译后,将其内部格式代码,以C语言程序段的格式输出
-ddd数据包的过滤条件经编译后,将其内部格式代码,以十进制的格式输出
-e在输出行打印出数据链路层MAC地址等头部信息。该参数可以用来打印以太网或者IEEE 802.11等协议物理链路层的地址。
-n不将地址(比如:主机地址、端口号)的数字表示形式转换成名字表示。
-s snaplen从每个报文中截取snaplen字节的数据,而不是缺省的65535。如果我们指定过小的snaplen值,获取的数据报将被截断(亦即我们获得的不是一个完整的数据报,只是原始数据报的一部分),在输出行中会有类似[|proto]这样的输出,这里的proto是截断发生处的协议层名称。注意,采用更大的捕捉范围既增加了处理报文的时间,又相应的减少了报文的缓冲数量,可能导致报文的丢失。你应该把snaplen设的尽量小,只要能够容纳你需要的协议信息就可以了。设置snaplen参数值为0,即是设置为默认值65535。
如果指定只获取数据报前10个字节,在输出时,会表明该数据包在以太网链路层数据被截断了:
root@motadou:~# tcpdump -i eth0 -n -t -s 10
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 10 bytes
[|ether]
[|ether]
如果指定只获取数据报前20个字节,在输出时,会表明该数据包在IP层数据被截断了:
root@motadou:~# tcpdump -i eth0 -n -t -s 20
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 20 bytes
IP [|ip] IP [|ip]
-t在每个输出行都不打印时间戳。
不使用该参数的输出行如下所示:
root@motadou:~# tcpdump -i eth0 -n
22:47:37.815859 IP 192.168.1.104.22 > 192.168.1.101.54931: Flags [P.], seq 1021826231:1021826427, ack 2432753, win 262, length 196
使用该参数后的输出行如下所示:
root@motadou:~# tcpdump -i eth0 -n -t
IP 192.168.1.104.22 > 192.168.1.101.54931: Flags [P.], seq 1021826231:1021826427, ack 2432753, win 262, length 196
-tt在每个输出行打印非格式化的时间戳,格式为:UNIX时间戳.毫秒数
格式化时间戳的输出行如下所示:
root@motadou:~# tcpdump -i eth0 -n
20:23:59.519824 IP 192.168.1.104.22 > 192.168.1.101.54931: Flags [P.], seq 1021787799:1021787995, ack 2428345, win 254, length 196
20:23:59.520223 IP 192.168.1.101.54931 > 192.168.1.104.22: Flags [.], ack 196, win 3931, length 0
非格式化的时间戳输出行如下所示:
root@motadou:~# tcpdump -i eth0 -tt
1391172027.174475 IP motadou.local.ssh > 192.168.1.101.54931: Flags [P.], seq 1021799219:1021799415, ack 2429125, win 254, length 196
1391172027.174822 IP 192.168.1.101.54931 > motadou.local.ssh: Flags [.], ack 196, win 3944, length 0
-ttt打印出当前输出行据上次输出所经历的时间间隔,其时间单位是毫秒。输出如下所示:
root@motadou:~# tcpdump -i eth0 -n -ttt
00:00:00.000016 IP 192.168.1.104.22 > 192.168.1.101.54931: Flags [P.], seq 1256:1372, ack 1, win 254, length 116
00:00:00.000196 IP 192.168.1.101.54931 > 192.168.1.104.22: Flags [.], ack 1060, win 3978, length 0
00:00:00.000090 IP 192.168.1.101.54931 > 192.168.1.104.22: Flags [.], ack 1372, win 3900, length 0
00:00:00.037288 IP 192.168.1.1.2049 > 239.255.255.250.1900: UDP, length 327
3 -- Tcpdump过滤表达式说明
4 -- Tcpdump使用示例

建立连接的过程
客户端主动关闭的情况/服务端主动关闭的情况(注意各端的链接状态)
accept返回前连接夭折
服务器进程终止,客户端再发送数据的状态
服务器主机崩溃
服务器主机关机

免责声明:文章转载自《Tcpdump使用方法总结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇IIS 4.0配置Excel透视表基础之数据源、创建、基本术语、基本操作下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

tcpdump抓包及tshark解包方法介绍

tshark是wireshark的命令行工具,通过shell命令抓取、解析报文。tcpdump是Linux系统下的抓包工具。wireshark和tcpdump都共同使用 libpcap作为其底层抓包的库,tshark也可以抓取报文。 有时候需要在linux系统或者ARM开发板中进行抓包,使用tcpdump抓包更加方便,在这种场景下,一般使用tcpdump进...

tcpdump抓SQL

前言:假设如果有个服务器几十个链接突然达到上千个链接,show processlist,general_log,还有慢查询日志这些都不能用,你怎么把这些链接过来的SQL情况了解清楚,如果你觉得那些好用的都无法使用,这不可能的事情,总会留下啥蛛丝马迹,既然说不能用,那么就无法下手了吗,图样图森破,其实有个神器可以用。 下面就来看看tcpdump这款神器 用字...

网络抓包神器 Tcpdump 使用指南

tcpdump 是一款强大的网络抓包工具,它使用 libpcap 库来抓取网络数据包,这个库在几乎在所有的 Linux/Unix 中都有。熟悉 tcpdump 的使用能够帮助你分析调试网络数据,本文将通过一个个具体的示例来介绍它在不同场景下的使用方法。 01 基本语法和使用方法 tcpdump 的常用参数如下: $ tcpdump -i eth0 -n...

tcpdump抓包工具的使用

个人原创,转载请注明,否则依法追究法律责任 2018-02-28 16:01:26 tcpdump 倾倒网络传输数据,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。 1 不接任何参数,表示监听本机的eth0网卡。 如果不指定网卡,默认tcpdump只会监视第一个网络接口,一般是eth0,下面的例子都没有指定网络接口。[root@shiyan...

tcpdump使用方法小结

在进行网络测试的时候,我们经常需要进行抓包的工作,当然有许多测试工具可以使用,比如sniffer, ethreal等.但最为方便和简单得就非TCPDump莫属. Linux的发行版里基本都包括了这个工具. TCPDump将网络接口设置成混杂模式以便捕获到达的每一个数据包.下面给出TCPDump的部分常用选项: -i <interface> 指定...

Linux抓包工具tcpdump使用总结,WireShark的过滤用法

tcpdump与WireShark是Linux下的两个常用,功能强大的抓包工具,下面列出这两个工具的简单用法。 tcpdump用法 tcpdump用法: sudo tcpdump -i ens33 src 192.168.0.19 port 80 -xx -Xs 0 -w test.capsudo tcpdump -i ens33 src port 80...