TCPDUMP 网络抓包

2018-07-12  本文已影响0人  Minato666

前段时间和其中一家供应商做GPS对接的时候遇到了一个问题,他们是用809协议向我们发送GPS数据,但是我们的DB中一直查不到发过来的数据而且log中根据他们的IP也没有找到发过来的数据,但是他们一直说发过来了,这个时候怎么办呢?于是从网上找到了一个linux上截获网络数据包的命令TCPDUMP。


TCPDUMP可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。


了解了这个TCPDUMP的命令之后我们就可以通过下面这个命令获取指定IP发送过来的数据包
tcpdump -XX -vvv -nn -i eth1 src host xxx.x.xxx.xxx



在输入上述的命令之后我们会得到下面这个结果:

[root@iZ23yaz766kZ ~]# tcpdump -XX -vvv -nn -i eth1 src host 218.3.146.108
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
15:10:16.719574 IP (tos 0x14, ttl 52, id 24439, offset 0, flags [DF], proto TCP (6), length 131)
   218.3.146.108.3956 > 121.41.59.24.14567: Flags [P.], cksum 0x2a72 (correct), seq 2382504609:2382504700, ack 3842476699, win 251, length 91
   0x0000:  0016 3e00 422c eeff ffff ffff 0800 4514  ..>.B,........E.
   0x0010:  0083 5f77 4000 3406 c638 da03 926c 7929  .._w@.4..8...ly)
   0x0020:  3b18 0f74 38e7 8e02 22a1 e507 8a9b 5018  ;..t8...".....P.
   0x0030:  00fb 2a72 0000 5b00 0000 5a02 003c 268e  ..*r..[...Z..<&.
   0x0040:  1200 0004 e24c 0102 0f01 0000 0001 930a  .....L..........
   0x0050:  8c81 56d6 94dd 6605 6c2c 4699 a51c fa73  ..V...f.l,F....s
   0x0060:  e5ee 7984 5388 e624 57f4 964a 3803 e0d4  ..y.S..$W..J8...
   0x0070:  31b5 c2a3 b242 1cd8 b342 a7cb 921a c100  1....B...B......
   0x0080:  ec1a 1bf1 7acb 11f6 ede3 59fc 25b8 e5b7  ....z.....Y.%...
   0x0090:  5d                                       ]
15:10:17.159556 IP (tos 0x14, ttl 52, id 24491, offset 0, flags [DF], proto TCP (6), length 132)
   218.3.146.108.3956 > 121.41.59.24.14567: Flags [P.], cksum 0x0661 (correct), seq 91:183, ack 1, win 251, length 92
   0x0000:  0016 3e00 422c eeff ffff ffff 0800 4514  ..>.B,........E.
   0x0010:  0084 5fab 4000 3406 c603 da03 926c 7929  .._.@.4......ly)
   0x0020:  3b18 0f74 38e7 8e02 22fc e507 8a9b 5018  ;..t8...".....P.
   0x0030:  00fb 0661 0000 5b00 0000 5a02 003c 268f  ...a..[...Z..<&.
   0x0040:  1200 0004 e24c 0102 0f01 0000 0001 930a  .....L..........
   0x0050:  8c86 57d5 97dd 6605 6c2c 4699 a51c fa73  ..W...f.l,F....s
   0x0060:  e5ee 7984 5388 e624 57f4 964a 3803 e0d4  ..y.S..$W..J8...
   0x0070:  31b7 c2a9 b9d8 1cee 095a 01a7 8392 52c1  1........Z....R.
   0x0080:  0351 5c1a bd7a c011 f6ed e259 fc25 b82b  .Q\..z.....Y.%.+
   0x0090:  bf5d                                     .]
15:10:17.179580 IP (tos 0x14, ttl 52, id 24497, offset 0, flags [DF], proto TCP (6), length 131)
   218.3.146.108.3956 > 121.41.59.24.14567: Flags [P.], cksum 0xadd0 (correct), seq 183:274, ack 1, win 251, length 91
   0x0000:  0016 3e00 422c eeff ffff ffff 0800 4514  ..>.B,........E.
   0x0010:  0083 5fb1 4000 3406 c5fe da03 926c 7929  .._.@.4......ly)
   0x0020:  3b18 0f74 38e7 8e02 2358 e507 8a9b 5018  ;..t8...#X....P.
   0x0030:  00fb add0 0000 5b00 0000 5a02 003c 2690  ......[...Z..<&.
   0x0040:  1200 0004 e24c 0102 0f01 0000 0001 930a  .....L..........
   0x0050:  8cfb 57d1 94d2 6605 6c2c 4699 a51c fa73  ..W...f.l,F....s
   0x0060:  e5ee 7984 5388 e624 57f4 964a 3803 e0d4  ..y.S..$W..J8...
   0x0070:  31b5 c2a9 90b8 1cd3 7f65 a7ce 921f c101  1........e......
   0x0080:  ecad 1b3b 7acc 11f6 ede2 59fc 25b8 b5b6  ...;z.....Y.%...
   0x0090:  5d        

这样我们就得到了从指定IP发过来的数据包,我们一起中一个作为样例:

15:10:17.179580 IP (tos 0x14, ttl 52, id 24497, offset 0, flags [DF], proto TCP (6), length 131)
   218.3.146.108.3956 > 121.41.59.24.14567: Flags [P.], cksum 0xadd0 (correct), seq 183:274, ack 1, win 251, length 91
   0x0000:  0016 3e00 422c eeff ffff ffff 0800 4514  ..>.B,........E.
   0x0010:  0083 5fb1 4000 3406 c5fe da03 926c 7929  .._.@.4......ly)
   0x0020:  3b18 0f74 38e7 8e02 2358 e507 8a9b 5018  ;..t8...#X....P.
   0x0030:  00fb add0 0000 5b00 0000 5a02 003c 2690  ......[...Z..<&.
   0x0040:  1200 0004 e24c 0102 0f01 0000 0001 930a  .....L..........
   0x0050:  8cfb 57d1 94d2 6605 6c2c 4699 a51c fa73  ..W...f.l,F....s
   0x0060:  e5ee 7984 5388 e624 57f4 964a 3803 e0d4  ..y.S..$W..J8...
   0x0070:  31b5 c2a9 90b8 1cd3 7f65 a7ce 921f c101  1........e......
   0x0080:  ecad 1b3b 7acc 11f6 ede2 59fc 25b8 b5b6  ...;z.....Y.%...
   0x0090:  5d 

其中前20个字节: 0016 3e00 422c eeff ffff ffff 0800 4514 0083 5fb1 是IP数据报的首部。
后面的32个字节: 4000 3406 c5fe da03 926c 7929 3b18 0f74 38e7 8e02 2358 e507 8a9b 5018 00fb add0是TCP数据报的首部。
最后面的则是TCP的data部分:0000 5b00 0000 5a02 003c 2690 1200 0004 e24c 0102 0f01 0000 0001 930a 8cfb 57d1 94d2 6605 6c2c 4699 a51c fa73 e5ee 7984 5388 e624 57f4 964a 3803 e0d4 31b5 c2a9 90b8 1cd3 7f65 a7ce 921f c101 ecad 1b3b 7acc 11f6 ede2 59fc 25b8 b5b6 5d
这样我们就获得了从指定IP发送过来的数据,然后就可以进行本地调试来验证数据是否有问题了。

上一篇下一篇

猜你喜欢

热点阅读