速成案例:tcpdump速成指南
一、基本用法
最简单的用法就是直接输入tcpdump
,监控所有的数据包:
[ma@ma ~]$ tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on usbmon1, link-type USB_LINUX_MMAPPED (USB with padded Linux header), capture size 65535 bytes
10:53:08.002434 CONTROL SUBMIT to 1:2:0
10:53:08.004461 CONTROL COMPLETE from 1:2:0
10:53:08.004502 CONTROL SUBMIT to 1:1:0
10:53:08.004502 CONTROL COMPLETE from 1:1:0
10:53:10.850080 CONTROL SUBMIT to 1:1:0
10:53:10.850102 CONTROL COMPLETE from 1:1:0
1.1 指定网卡
通过-i
选项指定监视的网卡,例如:
root@ma:/home/ma# tcpdump -i lo ## 监视本地环回地址
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 262144 bytes
10:29:20.842742 IP localhost.33688 > localhost.9999: Flags [S], seq 2494882294, win 43690, options [mss 65495,sackOK,TS val 3419853282 ecr 0,nop,wscale 7], length 0
10:29:20.842763 IP localhost.9999 > localhost.33688: Flags [S.], seq 2985714491, ack 2494882295, win 43690, options [mss 65495,sackOK,TS val 3419853282 ecr 3419853282,nop,wscale 7], length 0
10:29:20.842788 IP localhost.33688 > localhost.9999: Flags [.], ack 1, win 342, options [nop,nop,TS val 3419853282 ecr 3419853282], length 0
默认会监视系统的第一块网卡,会自动排除本地环回地址。
1.2 指定端口
指定端口可以根据不同的协议选择:tcp port *
或者udp port *
,也可以直接port *
。
例如,抓取本地地址的9999端口上的tcp协议的数据包:
root@ma:/home/ma# tcpdump -i lo tcp port 9999
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 262144 bytes
二、输出解释
对于以下数据包:
10:12:55.371576 IP localhost.33632 > localhost.9999: Flags [S], seq 2197027846, win 43690, options [mss 65495,sackOK,TS val 3418869659 ecr 0,nop,wscale 7], length 0
10:12:55.371600 IP localhost.9999 > localhost.33632: Flags [S.], seq 864630295, ack 2197027847, win 43690, options [mss 65495,sackOK,TS val 3418869659 ecr 3418869659,nop,wscale 7], length 0
10:12:55.371628 IP localhost.33632 > localhost.9999: Flags [.], ack 1, win 342, options [nop,nop,TS val 3418869659 ecr 3418869659], length 0
10:12:55.371628 IP localhost.33632 > localhost.9999
表示了数据包的时间以及源目地址,10点12分的数据包,从本地33632端口到本地9999端口。
Flags表名数据包类型:
S
: 表示SYN,同步序号.R
: 表示RST,复位连接。P
: 表示PSH,尽可能快地将数据送往接收进程。F
: 表示FIN,发送方完成数据发送。.
: 表示以上四个标记位都为0.
后面的seq
,ack
,win
等等则表示数据包中的字段,分别为数据包序号
,确认序号
,和窗口大小
。
此处评论已关闭