首页 > 编程知识 正文

tcpdump抓包命令详解,python抓包是什么意思

时间:2023-05-06 11:04:33 阅读:21369 作者:696

linux捕获命令是“tcpdump”,它可以捕获流经网卡的分组,并完全拦截网络上传输的分组的“报头”以提供分析。 支持网络层、协议、主机、网络或端口的过滤,并提供逻辑语句(如and、or和not )以帮助消除不必要的信息。

本教程系统要求: Red Hat Enterprise Linux 6.1系统、戴尔G3计算机。

tcpdump命令是基于unix系统命令行的数据报侦听工具,用于捕获流过网卡的数据包。

bbdxy、tcpdump可以完全拦截在网络上发送的分组的“报头”以提供分析。 它支持网络层、协议、主机、网络或端口的过滤,并提供逻辑语句(如and、or和not )以帮助消除不必要的信息。 tcpdump具有强大的功能和灵活的拦截策略,是在UNIX系统下进行网络分析和故障排除的最佳工具。

实用命令实例:

(1)缺省启动)通常,直接启动tcpdump会监视流向第一个网络接口的所有数据包。

[root@localhost ~]# tcpdump

(2) .监视指定网络接口上的数据包[ root @ localhost~] # tcpdump-ieth0- C10

(3) .监视指定主机上的数据包[ root @ localhost~] # tcpdump-ieth0host 10.20.3.25

(4) .获取主机10.20.3.25发送的所有数据[ root @ localhost (] # tcpdump-ieth0srchost 10.20.3.25

(5) .监视发送到主机10.20.3.25的所有数据包[ root @ localhost~] # tcpdump-ieth0dsthost 10.20.3.25

(6) .监视指定主机和端口的数据包[ root @ localhost (] # tcpdump tcpport 22 andhost 10.20.3.25

)7) .监视指定网络的数据包。 例如,对于本机与10.20.3网段通信的分组而言,“-c 10”意味着只获取10个分组[ root @ localhost (] # tcpdump-c 10 net 10.20 ]

(8) .抓住ping包[ root @ localhost~] # tcpdump-C5-nn-ieth0icmp

(9) .数据包数据分析[ root @ localhost~] # tcpdump-C2-q-xx-vvv-nn-ieth0TCP dstport 22

tcpdump: listening on eth0,link-typeen 10 MB (以太网),capture size 65535 bytes

10:22:22.334383IP(tos0x0,ttl 63,id 26834,offset 0,flags [DF],protoTCP(6),length 40 ) )。

10.20.3.25.6040110.20.9.131.223360 TCP 0

0x 00003360005056852 ba 800749 c 0f c 74808004500.PV . t . h . e。

0x 00103360002868 d 240003 f 06b 23a 0a 1403190 a 14.(h.@ .) . …… .

0x 002033600983 ebf 1001693 e 36ba8CD 6b D1 ce 5010 . k . k . p。

0x 00303360 F6 b 40 D8 e 00000000000000000 .

10:22336022.376759IP(tos0x0,ttl 63,id 26835,offset 0,flags [DF],protoTCP(6),length 40 ) )。

10.20.3.25.6040110.20.9.131.223360 TCP 0

0x 00003360005056852 ba 800749 c 0f c 74808004500.PV . t . h . e。

0x 00103360002868 d 340003 f 06b 2390 a 1403190 a 14.(h.@ .) .9.

0x 002033600983 ebf 1001693 e 36ba8CD6BD 3925010 . k . k . p。

0x 00303360 faf 0078 e 00000000000000000000 .

2打包捕获

2打包接收by过滤器

0打包的按密钥管理

[ root @ test-core-services-03~~ ] #

(10 ).tcpdump捕获HTTP分组tcpdump -XvvennSs 0 -i

eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854

0x4745 为"GET"前两个字母"GE",0x4854 为"HTTP"前两个字母"HT"。

tcpdump常用选项:

它的命令格式为:tcpdump [ -DenNqvX ] [ -c count ] [ -F file ] [ -i interface ] [ -r file ]

[ -s snaplen ] [ -w file ] [ expression ]

抓包选项:

-c:指定要抓取的包数量。注意,是最终要获取这么多个包。例如,指定"-c 10"将获取10个包,但可能已经处理了100个包,只不过只有10个包是满足条件的包。

-i interface:指定tcpdump需要监听的接口。若未指定该选项,将从系统接口列表中搜寻编号最小的已配置好的接口(不包括loopback接口,要抓取loopback接口使用tcpdump -i lo),

:一旦找到第一个符合条件的接口,搜寻马上结束。可以使用'any'关键字表示所有网络接口。

-n:对地址以数字方式显式,否则显式为主机名,也就是说-n选项不做主机名解析。

-nn:除了-n的作用外,还把端口显示为数值,否则显示端口服务名。

-N:不打印出host的域名部分。例如tcpdump将会打印'nic'而不是'nic.ddn.mil'。

-P:指定要抓取的包是流入还是流出的包。可以给定的值为"in"、"out"和"inout",默认为"inout"。

-s len:设置tcpdump的数据包抓取长度为len,如果不设置默认将会是65535字节。对于要抓取的数据包较大时,长度设置不够可能会产生包截断,若出现包截断,

:输出行中会出现"[|proto]"的标志(proto实际会显示为协议名)。但是抓取len越长,包的处理时间越长,并且会减少tcpdump可缓存的数据包的数量,

:从而会导致数据包的丢失,所以在能抓取我们想要的包的前提下,抓取长度越小越好。

输出选项:

-e:输出的每行中都将包括数据链路层头部信息,例如源MAC和目标MAC。

-q:快速打印输出。即打印很少的协议相关信息,从而输出行都比较简短。

-X:输出包的头部数据,会以16进制和ASCII两种方式同时输出。

-XX:输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细。

-v:当分析和打印的时候,产生详细的输出。

-vv:产生比-v更详细的输出。

-vvv:产生比-vv更详细的输出。

其他功能性选项:

-D:列出可用于抓包的接口。将会列出接口的数值编号和接口名,它们都可以用于"-i"后。

-F:从文件中读取抓包的表达式。若使用该选项,则命令行中给定的其他表达式都将失效。

-w:将抓包数据输出到文件中而不是标准输出。可以同时配合"-G time"选项使得输出文件每time秒就自动切换到另一个文件。可通过"-r"选项载入这些文件以进行分析和打印。

-r:从给定的数据包文件中读取数据。使用"-"表示从标准输入中读取。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。