tcpdump 抓包命令 参数求解释

tcpdump -XvvennSs 0 -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854
请问 tcp 后面方括号中的数字是什么意思?
我看抓到的结果是这样的

0x0000: 4500 01d2 c66b 4000 4006 f4e6 c0a8 fe80 E....k@.@.......
0x0010: c0a8 fe01 1f91 d5e3 f63a c356 7f07 3da6 .........:.V..=.
0x0020: 5018 014d 7f98 0000 4854 5450 2f31 2e31 P..M....HTTP/1.1
0x0030: 2032 3030 204f 4b0d 0a44 6174 653a 2057 .200.OK..Date:.W

20 可以认为是 0x0020
那么2怎么在4854的位置了

方法/步骤

默认系统里边没有安装有tcpdump的,无法直接使用

这里我们可以使用yum来直接安装它
yum install -y tcpdump

如果忘记了这个软件的用法,我们可以使用 tcpdump --help 来查看一下使用方法

一般我们的服务器里边只有一个网卡,使用tcpdump可以直接抓取数据包,但是这样查看太麻烦了,所以都会添加参数来进行获取的。
例如我截取本机(192.168.31.147)和主机114.114.114.114之间的数据
tcpdump -n -i eth0 host 192.168.31.147 and 114.114.114.114

还有截取全部进入服务器的数据可以使用以下的格式
tcpdump -n -i eth0 dst 192.168.31.147
或者服务器有多个IP 可以使用参数
tcpdump -n -i eth0 dst 192.168.31.147 or 192.168.31.157

我们抓取全部进入服务器的TCP数据包使用以下的格式,大家可以参考下
tcpdump -n -i eth0 dst 192.168.31.147 or 192.168.31.157 and tcp
从本机出去的数据包
tcpdump -n -i eth0 src 192.168.31.147 or 192.168.31.157
tcpdump -n -i eth0 src 192.168.31.147 or 192.168.31.157 and port ! 22 and tcp

或者可以条件可以是or 和 and 配合使用即可筛选出更好的结果。追问

谢谢!可能是我没有表达清楚,我想问的是 :

tcp[20:2]
这个表达式的数据位置是怎么算出来的

温馨提示:答案为网友推荐,仅供参考
相似回答