tcpdump

最后更新于:2022-04-02 03:50:01

[TOC] ## 概述 ### 显示说明 ``` 13:29:07.788802 IP localhost.42333 > localhost.9501: Flags [S], seq 828582357, win 43690, options [mss 65495,sackOK,TS val 2207513 ecr 0,nop,wscale 7], length 0 13:29:07.788815 IP localhost.9501 > localhost.42333: Flags [S.], seq 1242884615, ack 828582358, win 43690, options [mss 65495,sackOK,TS val 2207513 ecr 2207513,nop,wscale 7], length 0 13:29:07.788830 IP localhost.42333 > localhost.9501: Flags [.], ack 1, win 342, options [nop,nop,TS val 2207513 ecr 2207513], length 0 13:29:10.298686 IP localhost.42333 > localhost.9501: Flags [P.], seq 1:5, ack 1, win 342, options [nop,nop,TS val 2208141 ecr 2207513], length 4 13:29:10.298708 IP localhost.9501 > localhost.42333: Flags [.], ack 5, win 342, options [nop,nop,TS val 2208141 ecr 2208141], length 0 13:29:10.298795 IP localhost.9501 > localhost.42333: Flags [P.], seq 1:13, ack 5, win 342, options [nop,nop,TS val 2208141 ecr 2208141], length 12 13:29:10.298803 IP localhost.42333 > localhost.9501: Flags [.], ack 13, win 342, options [nop,nop,TS val 2208141 ecr 2208141], length 0 13:29:11.563361 IP localhost.42333 > localhost.9501: Flags [F.], seq 5, ack 13, win 342, options [nop,nop,TS val 2208457 ecr 2208141], length 0 13:29:11.563450 IP localhost.9501 > localhost.42333: Flags [F.], seq 13, ack 6, win 342, options [nop,nop,TS val 2208457 ecr 2208457], length 0 13:29:11.563473 IP localhost.42333 > localhost.9501: Flags [.], ack 14, win 342, options [nop,nop,TS val 2208457 ecr 2208457], length 0 ``` 说明 ``` 13:29:11.563473 时间带有精确到微妙 localhost.42333 > localhost.9501 表示通信的流向,42333 是客户端,9501 是服务器端 [S] 表示这是一个 SYN 请求 [.] 表示这是一个 ACK 确认包,(client) SYN->(server) SYN->(client) ACK 就是 3 次握手过程 [P] 表示这个是一个数据推送,可以是从服务器端向客户端推送,也可以从客户端向服务器端推 [F] 表示这是一个 FIN 包,是关闭连接操作,client/server 都有可能发起 [R] 表示这是一个 RST 包,与 F 包作用相同,但 RST 表示连接关闭时,仍然有数据未被处理。可以理解为是强制切断连接 win 342 是指滑动窗口大小 length 12 指数据包的大小 ``` ## 任意网卡 ``` tcpdump -i any host 210.27.48.1 ``` ## 监听指定ip 监听发送和接收 / src 监听发送 / 监听接收 ``` tcpdump -i ent0 [src|dst] host 210.27.48.1 ``` ## 监听指定端口 ``` tcpdump -i ent0 [src|dst] port 6661 ``` ## 监听 udp 或tcp ``` tcpdump -i ent0 [tcp|udp] [src|dst] port 6661 ``` ## 同时监听端口和ip ``` tcpdump -i any [tcp|udp] [src|dst] port 6661 and [src|dst] host 192.168.0.1 ``` ## 显示几条 显示100条 ``` tcpdump -i any port 6661 -c 100 ``` ## 显示包内容 显示包的内容 ``` tcpdump -i any port 6661 -c 10 -X ``` ## tcpdump 与wireshark ``` tcpdump tcp -i eth1 -t -s 0 -c 100 and port 6661 -w ./target.cap -t : 不显示时间戳 -s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包 -c 100 : 只抓取100个数据包 -w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析 ```
';