# tcpdump:linux抓包工具。需要root权限执行。
# 常用参数选项
-A 以ASCII格式打印出所有分组,并将链路层的头最小化(抓取web或sql信息时建议加上)
-s 设置读取包的长度(默认为68) 如:-s 200
-i 指定监听的网络接口
-e 在输出行打印出数据链路层的头部信息
-t 在输出的每一行不打印时间戳
-v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息
-vv 输出详细的报文信息
-w 直接将包写入文件中,并不分析和打印出来
-r 从指定的文件中读取包(这些包一般通过-w选项产生)
-q quiect output,尽量少的打印一些信息
-tttt 显示详细的日期信息
# 常用关键字 src、dst为传输方向关键字
[src|dst] host 192.168.22.228 # 指明 192.168.22.228 是一台主机(可选择指定只抓取目标主机或只抓取来源主机)
[src or dst] net 192.168.22.228 # 指明 192.168.22.228 是一个网络地址(默认为目标地址或来源地址都抓取)
port 80 # 指明端口是80
# 协议关键字 如:tcp udp ip arp等
# 逻辑关键字 如:and or not等
# 其它关键字 如:gateway broadcast less greater等
# 保存到.pcap文件中(.pcap后缀方便使用wireshark分析)
tcpdump -i any -w test.pcap port 80
# tcp打印任意端口为80并且包长度大于100的
tcpdump -i any -tttt port 80 and greater 100
# 11:18:58.628467 628467是微妙数
# localhost.46356 46356是客户端的一个随机端口
# Flags [S] Flags [S.] Flags [.] tcp三次握手 S(SYN同步请求) S.(ACK确认并附带一个同步请求) .(ACK确认)
# P表示push,数据推送
# F表示这是个FIN包,连接关闭
# R表示这是个RST包,与F包相同,但RST表示连接关闭时,仍然有数据未被处理,可以理解为强制切断连接
[root@BestLove ~]# tcpdump -i any tcp port 9501
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
11:18:58.628467 IP localhost.46356 > localhost.9501: Flags [S], seq 3755854020, win 32792, options [mss 16396,sackOK,TS val 150268897 ecr 0,nop,wscale 6], length 0
11:18:58.628467 IP localhost.9501 > localhost.46356: Flags [S.], seq 2825523425, ack 3755854021, win 32768, options [mss 16396,sackOK,TS val 150268898 ecr 150268897,nop,wscale 6], length 0
11:18:58.628467 IP localhost.46356 > localhost.9501: Flags [.], ack 1, win 513, options [nop,nop,TS val 150268898 ecr 150268898], length 0
11:19:02.739454 IP localhost.46356 > localhost.9501: Flags [P.], seq 1:13, ack 1, win 513, options [nop,nop,TS val 150273009 ecr 150268898], length 12
11:19:02.739465 IP localhost.9501 > localhost.46356: Flags [.], ack 13, win 512, options [nop,nop,TS val 150273009 ecr 150273009], length 0
11:19:02.739664 IP localhost.9501 > localhost.46356: Flags [P.], seq 1:21, ack 13, win 512, options [nop,nop,TS val 150273009 ecr 150273009], length 20
11:19:02.739669 IP localhost.46356 > localhost.9501: Flags [.], ack 21, win 513, options [nop,nop,TS val 150273009 ecr 150273009], length 0
11:19:02.739679 IP localhost.9501 > localhost.46356: Flags [F.], seq 21, ack 13, win 512, options [nop,nop,TS val 150273009 ecr 150273009], length 0
11:19:02.739723 IP localhost.46356 > localhost.9501: Flags [F.], seq 13, ack 22, win 513, options [nop,nop,TS val 150273009 ecr 150273009], length 0
11:19:02.739730 IP localhost.9501 > localhost.46356: Flags [.], ack 14, win 512, options [nop,nop,TS val 150273009 ecr 150273009], length 0