抓包工具tcpdump用法说明

本文目录:

1.1 tcpdump选项

1.2 tcpdump表达式

1.3 tcpdump示例

tcpdump采用命令行方式对接口的数据包进行筛选抓取,其丰富特性表现在灵活的表达式上。

不带任何选项的tcpdump,默认会抓取第一个网络接口,且只有将tcpdump进程终止才会停止抓包。

例如:

shell> tcpdump -nn -i eth0 icmp

登录后复制

下面是详细的tcpdump用法。

1.1 tcpdump选项

它的命令格式为:

tcpdump [ -DenNqvX ] [ -c count ] [ -F  ] [ -i interface ] [ -r -s snaplen ] [ - 注意,是最终要获取这么多个包。例如,指定若未指定该选项,将从系统接口列表中搜寻编号最小的已配置好的接口(不包括loopback接口,要抓取loopback接口使用tcpdump -i lo),            :一旦找到第一个符合条件的接口,搜寻马上结束。可以使用-n:对地址以数字方式显式,否则显式为主机名,也就是说--N:不打印出host的域名部分。例如tcpdump将会打印而不是-P:指定要抓取的包是流入还是流出的包。可以给定的值为、和,默认为-s len:设置tcpdump的数据包抓取长度为len,如果不设置默认将会是65535字节。对于要抓取的数据包较大时,长度设置不够可能会产生包截断,若出现包截断,      :输出行中会出现-----vv:产生比---:将抓包数据输出到文件中而不是标准输出。可以同时配合选项使得输出文件每time秒就自动切换到另一个文件。可通过-r:从给定的数据包文件中读取数据。使用表示从标准输入中读取。

登录后复制

所以常用的选项也就这几个:

tcpdump -D

tcpdump -c num -i int -nn -XX -vvv

1.2 tcpdump表达式

表达式用于筛选输出哪些类型的数据包,如果没有给定表达式,所有的数据包都将输出,否则只输出表达式为true的包。在表达式中出现的shell元字符建议使用单引号包围。

tcpdump的表达式由一个或多个”单元”组成,每个单元一般包含ID的修饰符和一个ID(数字或名称)。有三种修饰符:

(1).type:指定ID的类型。

可以给定的值有host/net/port/portrange。例如”host foo”,”net 128.3″,”port 20″,”portrange 6000-6008″。默认的type为host。

(2).dir:指定ID的方向。

可以给定的值包括src/dst/src or dst/src and dst,默认为src or dst。例如,”src foo”表示源主机为foo的数据包,”dst net 128.3″表示目标网络为128.3的数据包,”src or dst port 22″表示源或目的端口为22的数据包。

(3).proto:通过给定协议限定匹配的数据包类型。

常用的协议有tcp/udp/arp/ip/ether/icmp等,若未给定协议类型,则匹配所有可能的类型。例如”tcp port 21″,”udp portrange 7000-7009″。

所以,一个基本的表达式单元格式为”proto dir type ID”

除了使用修饰符和ID组成的表达式单元,还有关键字表达式单元:gateway,broadcast,less,greater以及算术表达式。

表达式单元之间可以使用操作符” and / && / or / || / not / ! “进行连接,从而组成复杂的条件表达式。如”host foo and not port ftp and not port ftp-data”,这表示筛选的数据包要满足”主机为foo且端口不是ftp(端口21)和ftp-data(端口20)的包”,常用端口和名字的对应关系可在linux系统中的/etc/service文件中找到。

另外,同样的修饰符可省略,如”tcp dst port ftp or ftp-data or domain”与”tcp dst port ftp or tcp dst port ftp-data or tcp dst port domain”意义相同,都表示包的协议为tcp且目的端口为ftp或ftp-data或domain(端口53)。

使用括号”()”可以改变表达式的优先级,但需要注意的是括号会被shell解释,所以应该使用反斜线”\”转义为”\(\)”,在需要的时候,还需要包围在引号中。

1.3 tcpdump示例

(1).默认启动

tcpdump

登录后复制

默认情况下,直接启动tcpdump将监视第一个网络接口(非lo口)上所有流通的数据包。这样抓取的结果会非常多,滚动非常快。

(2).监视指定网络接口的数据包

tcpdump -i eth1

登录后复制

如果不指定网卡,默认tcpdump只会监视第一个网络接口,如eth0。

(3).监视指定主机的数据包,例如所有进入或离开longshuai的数据包

tcpdump host longshuai

登录后复制

(4).打印helioshot或heliosace之间通信的数据包

tcpdump host helios and \( hot or ace \)

登录后复制

(5).打印ace与任何其他主机之间通信的IP数据包,但不包括与helios之间的数据包

tcpdump ip host ace and not helios

登录后复制

(6).截获主机hostname发送的所有数据

tcpdump src host hostname

登录后复制

(7).监视所有发送到主机hostname的数据包

tcpdump dst host hostname

登录后复制

(8).监视指定主机和端口的数据包

tcpdump tcp port 22 and host hostname

登录后复制

(9).对本机的udp 123端口进行监视(123为ntp的服务端口)

tcpdump udp port 123

登录后复制

(10).监视指定网络的数据包,如本机与192.168网段通信的数据包,”-c 10″表示只抓取10个包

tcpdump -c 10 net 192.168

登录后复制

(11).打印所有通过网关snup的ftp数据包(注意,表达式被单引号括起来了,这可以防止shell对其中的括号进行错误解析)

shell> tcpdump 'gateway snup and (port ftp or ftp-data)'

登录后复制

(12).抓取ping包

[root@server2 ~]# tcpdump -c 5 -nn -i eth0 icmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes12:11:23.273638 IP 192.168.100.70 > 192.168.100.62: ICMP echo request, id 16422, seq 10, length 6412:11:23.273666 IP 192.168.100.62 > 192.168.100.70: ICMP echo reply, id 16422, seq 10, length 6412:11:24.356915 IP 192.168.100.70 > 192.168.100.62: ICMP echo request, id 16422, seq 11, length 6412:11:24.356936 IP 192.168.100.62 > 192.168.100.70: ICMP echo reply, id 16422, seq 11, length 6412:11:25.440887 IP 192.168.100.70 > 192.168.100.62: ICMP echo request, id 16422, seq 12, length 645 packets captured6 packets received by filter0 packets dropped by kernel

登录后复制

如果明确要抓取主机为192.168.100.70对本机的ping,则使用and操作符。

[root@server2 ~]# tcpdump -c 5 -nn -i eth0 icmp and src 192.168.100.62tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes12:09:29.957132 IP 192.168.100.70 > 192.168.100.62: ICMP echo request, id 16166, seq 1, length 6412:09:31.041035 IP 192.168.100.70 > 192.168.100.62: ICMP echo request, id 16166, seq 2, length 6412:09:32.124562 IP 192.168.100.70 > 192.168.100.62: ICMP echo request, id 16166, seq 3, length 6412:09:33.208514 IP 192.168.100.70 > 192.168.100.62: ICMP echo request, id 16166, seq 4, length 6412:09:34.292222 IP 192.168.100.70 > 192.168.100.62: ICMP echo request, id 16166, seq 5, length 645 packets captured5 packets received by filter0 packets dropped by kernel

登录后复制

注意不能直接写icmp src 192.168.100.70,因为icmp协议不支持直接应用host这个type。

(13).抓取到本机22端口包

[root@server2 ~]# tcpdump -c 10 -nn -i eth0 tcp dst port 22  tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes12:06:57.574293 IP 192.168.100.1.5788 > 192.168.100.62.22: Flags [.], ack 535528834, win 2053, length 012:06:57.629125 IP 192.168.100.1.5788 > 192.168.100.62.22: Flags [.], ack 193, win 2052, length 012:06:57.684688 IP 192.168.100.1.5788 > 192.168.100.62.22: Flags [.], ack 385, win 2051, length 012:06:57.738977 IP 192.168.100.1.5788 > 192.168.100.62.22: Flags [.], ack 577, win 2050, length 012:06:57.794305 IP 192.168.100.1.5788 > 192.168.100.62.22: Flags [.], ack 769, win 2050, length 012:06:57.848720 IP 192.168.100.1.5788 > 192.168.100.62.22: Flags [.], ack 961, win 2049, length 012:06:57.904057 IP 192.168.100.1.5788 > 192.168.100.62.22: Flags [.], ack 1153, win 2048, length 012:06:57.958477 IP 192.168.100.1.5788 > 192.168.100.62.22: Flags [.], ack 1345, win 2047, length 012:06:58.014338 IP 192.168.100.1.5788 > 192.168.100.62.22: Flags [.], ack 1537, win 2053, length 012:06:58.069361 IP 192.168.100.1.5788 > 192.168.100.62.22: Flags [.], ack 1729, win 2052, length 010 packets captured10 packets received by filter0 packets dropped by kernel

登录后复制

(14).解析包数据

[root@server2 ~]# tcpdump -c 2 -q -XX -vvv -nn -i eth0 tcp dst port 22tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes12:15:54.788812 IP (tos 0x0, ttl 64, id 19303, offset 0, flags [DF], proto TCP (6), length 40)192.168.100.1.5788 > 192.168.100.62.22: tcp 00x0000:  000c 2908 9234 0050 56c0 0008 0800 4500  ..)..4.PV.....E.0x0010:  0028 4b67 4000 4006 a5d8 c0a8 6401 c0a8  .(Kg@.@.....d...0x0020:  643e 169c 0016 2426 5fd6 1fec 2b62 5010  d>....$&_...+bP.0x0030:  0803 7844 0000 0000 0000 0000            ..xD........12:15:54.842641 IP (tos 0x0, ttl 64, id 19304, offset 0, flags [DF], proto TCP (6), length 40)192.168.100.1.5788 > 192.168.100.62.22: tcp 00x0000:  000c 2908 9234 0050 56c0 0008 0800 4500  ..)..4.PV.....E.0x0010:  0028 4b68 4000 4006 a5d7 c0a8 6401 c0a8  .(Kh@.@.....d...0x0020:  643e 169c 0016 2426 5fd6 1fec 2d62 5010  d>....$&_...-bP.0x0030:  0801 7646 0000 0000 0000 0000            ..vF........2 packets captured2 packets received by filter0 packets dropped by kernel

登录后复制

总的来说,tcpdump对基本的数据包抓取方法还是较简单的。只要掌握有限的几个选项(-nn -XX -vvv -i -c -q),再组合表达式即可。

 

姊妹篇:网络扫描工具nmap

 

回到系列文章大纲:

转载请注明出处:

以上就是抓包工具tcpdump用法说明的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3165868.html

(0)
上一篇 2025年3月31日 03:06:12
下一篇 2025年3月31日 03:06:29

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 采购APP应当如何运营?

    在当今的商业环境中,采购是企业运营中至关重要的一环。为了提升采购流程的效率和透明度,越来越多的企业选择使用采购app来管理其采购活动。然而,要确保采购app的成功运营,需要实施一系列关键步骤和策略。本文将详细探讨如何运营采购app。 确定目…

    2025年4月28日
    000
  • 源码生成APP软件都具备哪些优势?

    在当今的数字化时代,移动应用程序已成为各行各业中不可或缺的工具。许多企业和开发者正在寻求更快、更经济、更便捷的方法来开发定制化的移动应用。源码生成app软件的出现,带来了许多优势,使得移动应用的开发变得更加简便和高效。 以下是源码生成APP…

    2025年4月28日
    000
  • APP生成器都有哪些优势?

    随着移动应用的广泛使用,越来越多的人和企业认识到拥有自己移动应用的重要性。然而,传统的移动应用开发对于许多人来说可能过于复杂和昂贵。在这种背景下,app生成器成为了一个受欢迎的选择。app生成器是一种工具或平台,让人们在没有编程技能的情况下…

    2025年4月28日
    000
  • 苏州APP开发应该怎么选择开发团队?

    随着移动应用市场的蓬勃发展和竞争的加剧,苏州的企业和创业者对高质量移动应用的需求日益增加。然而,选择合适的app开发团队却面临着诸多选择和挑战。本文将为您提供一些在苏州选择app开发团队时需要考虑的关键因素。 经验和专业知识 选择团队时,首…

    2025年4月28日
    000
  • 找小程序团队做开发,需要提前做哪些准备?

    在移动互联网时代,小程序已成为企业和个人实现移动应用目标的重要工具。然而,找到合适的小程序开发团队并顺利完成开发工作,需要提前做好充分准备。本文将为您介绍在寻找小程序开发团队之前,您需要进行哪些准备工作。 明确项目目标和需求: 在寻找小程序…

    2025年4月28日
    000
  • 用APP生成工具怎么制作软件APP程序?

    随着移动应用的日益普及,越来越多的人希望能够自己制作app。然而,对于缺乏编程经验的人来说,传统的app开发可能显得难以企及。幸运的是,app生成工具为他们提供了一种便捷的解决方案。本文将详细介绍如何使用app生成工具来制作软件app程序,…

    2025年4月28日
    000
  • 旅游APP制作需要拥有哪些功能?

    随着移动技术的持续进步,旅游业也步入了数字化时代。旅游app作为旅行者与目的地信息之间的桥梁,已成为现代旅行必不可少的工具。然而,要打造一款成功的旅游app,需要具备哪些功能才能满足用户需求并提供优质的旅行体验呢?本文将深入探讨旅游app开…

    2025年4月28日
    000
  • 手机应用管理软件该怎样运营?

    手机应用管理软件是一类非常实用的工具,可以帮助用户更有效地管理和优化其手机上的应用程序。在当今社会中,这类应用越来越受到青睐,因为人们对手机应用的需求不断增长。如果您计划开发和运营手机应用管理软件,以下是一些关键的运营策略和实践,可助您取得…

    2025年4月28日
    000
  • 值得推荐的软件开发技术方案

    在数字化时代,软件开发成为现代社会的关键组成部分。选择合适的技术方案对于项目成功至关重要。本文将介绍一些推荐的软件开发技术方案,帮助您在开发过程中取得卓越的成果。 1. 前端开发技术方案 React.js: React是一个流行的JavaS…

    2025年4月28日
    000
  • 移动APP推送服务有哪些优势?

    在移动应用市场不断扩大的背景下,移动app推送服务已成为许多企业和开发者的重要工具。这项技术使得应用开发者能够直接向用户的移动设备发送消息、提醒和通知,从而提升用户参与度和市场推广的效果。本文将深入探讨移动app推送服务的优势及其对企业和用…

    2025年4月28日
    000

发表回复

登录后才能评论