Linux下抓包工具tcpdump使用介绍

Linux下抓包工具tcpdump使用介绍
Linux下抓包工具tcpdump使用介绍

Linux下抓包工具tcpdump使用介绍

Linux下抓包工具tcpdump使用介绍

作者:佚名

时间:11-30 17:11:39

【大中小】

点评:在传统的网络分析和测试技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一,本文将介绍Linux下抓包工具tcpdump使用,需要的朋友可以参考下在传统的网络分析和测试技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一。sniffer工具首先是为网络管理员和网络程序员进行网络分析而设计的。匹配ether广播包。ether广播包的特征是mac全1.故如下即可匹配:

tcpdump 'ether dst ff:ff:ff:ff:ff:ff'

ylin@ylin:~$ sudo tcpdump -c 1 'ether dst ff:ff:ff:ff:ff:ff' tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture

size 96 bytes

10:47:57.784099 arp who-has 192.168.240.77 tell

192.168.240.189

在此,只匹配1个包就退出了。第一个是arp请求包,arp

请求包的是采用广播的方式发送的,被匹配那是当之无愧的。匹配ether组播包,ether的组播包的特征是mac的最高位

为1,其它位用来表示组播组编号,如果你想匹配其的多播组,知道它的组MAC地址即可。如

tcpdump 'ether dst ' Mac_Address表示地址,填上适当的即可。如果想匹配所有的ether多播数据包,那么暂时请放下,下面会继续为你讲解更高级的应用。(2)匹配arp包

arp包用于IP到Mac址转换的一种协议,包括arp请求和arp答应两种报文,arp请求报文是ether广播方式发送出去的,也即arp请求报文的mac地址是全1,因此用ether dst FF;FF;FF;FF;FF;FF可以匹配arp请求报文,但不能匹配答应报文。因此要匹配arp的通信过程,则只有使用arp来指定协议。

tcpdump 'arp' 即可匹配网络上arp报文。

ylin@ylin:~$ arping -c 4 192.168.240.1>/dev/null& sudo tcpdump -p 'arp'

[1] 9293

WARNING: interface is ignored: Operation not permitted

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

11:09:25.042479 arp who-has 192.168.240.1

(00:03:d2:20:04:28 (oui Unknown)) tell ylin.local

11:09:25.042702 arp reply 192.168.240.1 is-at

00:03:d2:20:04:28 (oui Unknown)

11:09:26.050452 arp who-has 192.168.240.1

(00:03:d2:20:04:28 (oui Unknown)) tell ylin.local

11:09:26.050765 arp reply 192.168.240.1 is-at

00:03:d2:20:04:28 (oui Unknown)

11:09:27.058459 arp who-has 192.168.240.1

(00:03:d2:20:04:28 (oui Unknown)) tell ylin.local

11:09:27.058701 arp reply 192.168.240.1 is-at

00:03:d2:20:04:28 (oui Unknown)

11:09:33.646514 arp who-has ylin.local tell 192.168.240.1 11:09:33.646532 arp reply ylin.local is-at

00:19:21:1d:75:e6 (oui Unknown)

本例中使用arping -c 4 192.168.240.1产生arp请求和接收答应报文,而tcpdump -p 'arp'匹配出来了。此处-p选项是使网络工作于正常模式(非混杂模式),这样是方便查看匹配

结果。(3)匹配IP包

众所周知,IP协议是TCP/IP协议中最重要的协议之一,正是因为它才能把Internet互联起来,它可谓功不可没,下面分析匹配IP包的表达式。

对IP进行匹配

tcpdump 'ip src 192.168.240.69'

ylin@ylin:~$ sudo tcpdump -c 3 'ip src 192.168.240.69' tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

11:20:00.973605 IP ylin.local.51486 >

https://www.360docs.net/doc/9711128921.html,.ssh: S

2706301341:2706301341(0) win 5840

11:20:00.974328 IP ylin.local.32849 >

192.168.200.150.domain: 5858 PTR?

20.200.168.192.in-addr.arpa. (45)

11:20:01.243490 IP ylin.local.51486 >

https://www.360docs.net/doc/9711128921.html,.ssh: . ack 2762262674 win 183 IP广播组播数据包匹配:只需指明广播或组播地址即可tcpdump 'ip dst 240.168.240.255'

ylin@ylin:~$ sudo tcpdump 'ip dst 192.168.240.255'

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

11:25:29.690658 IP dd.local > 192.168.240.255: ICMP echo request, id 10022, seq 1, length 64

11:25:30.694989 IP dd.local > 192.168.240.255: ICMP echo request, id 10022, seq 2, length 64

11:25:31.697954 IP dd.local > 192.168.240.255: ICMP echo request, id 10022, seq 3, length 64

11:25:32.697970 IP dd.local > 192.168.240.255: ICMP echo request, id 10022, seq 4, length 64

11:25:33.697970 IP dd.local > 192.168.240.255: ICMP echo request, id 10022, seq 5, length 64

11:25:34.697982 IP dd.local > 192.168.240.255: ICMP echo request, id 10022, seq 6, length 64

此处匹配的是ICMP的广播包,要产生此包,只需要同一个局域网的另一台主机运行ping -b 192.168.240.255即可,当然还可产生组播包,由于没有适合的软件进行模拟产生,在此不举例子。(4)匹配TCP数据包

TCP同样是TCP/IP协议栈里面最为重要的协议之一,它提供了端到端的可靠数据流,同时很多应用层协议都是把TCP

作为底层的通信协议,因为TCP的匹配是非常重要的。

如果想匹配HTTP的通信数据,那只需指定匹配端口为80的条件即可

tcpdump 'tcp dst port 80'

ylin@ylin:~$ wget https://www.360docs.net/doc/9711128921.html, 2>1 1 >/dev/null & sudo tcpdump -c 5 'tcp port 80'

[1] 10762

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

12:02:47.549056 IP https://www.360docs.net/doc/9711128921.html,.www >

ylin.local.47945: S 1202130469:1202130469(0) ack 1132882351 win 2896

12:02:47.549085 IP ylin.local.47945 >

https://www.360docs.net/doc/9711128921.html,.www: . ack 1 win 183

12:02:47.549226 IP ylin.local.47945 >

https://www.360docs.net/doc/9711128921.html,.www: P 1:102(101) ack 1 win 183 12:02:47.688978 IP https://www.360docs.net/doc/9711128921.html,.www >

ylin.local.47945: . ack 102 win 698

12:02:47.693897 IP https://www.360docs.net/doc/9711128921.html,.www >

ylin.local.47945: . 1:1409(1408) ack 102 win 724 (5)匹配

udp数据包

udp是一种无连接的非可靠的用户数据报,因此udp的主要特征同样是端口,用如下方法可以匹配某一端口

tcpdump 'upd port 53' 查看DNS的数据包

ylin@ylin:~$ ping -c 1 https://www.360docs.net/doc/9711128921.html, > /dev/null& sudo tcpdump -p udp port 53

[1] 11424

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

12:28:09.221950 IP ylin.local.32853 >

192.168.200.150.domain: 63228 PTR?

43.22.108.202.in-addr.arpa. (44)

12:28:09.222607 IP ylin.local.32854 >

192.168.200.150.domain: 5114 PTR?

150.200.168.192.in-addr.arpa. (46)

12:28:09.487017 IP 192.168.200.150.domain >

ylin.local.32853: 63228 1/0/0 (80)

12:28:09.487232 IP 192.168.200.150.domain >

ylin.local.32854: 5114 NXDomain* 0/1/0 (140)

12:28:14.488054 IP ylin.local.32854 >

192.168.200.150.domain: 60693 PTR?

69.240.168.192.in-addr.arpa. (45)

12:28:14.755072 IP 192.168.200.150.domain >

ylin.local.32854: 60693 NXDomain 0/1/0 (122)

使用ping https://www.360docs.net/doc/9711128921.html,目标是产生DNS请求和答应,53是DNS的端口号。

此外还有很多qualitifer是还没有提及的,下面是其它合法的primitive,在tcpdump中是可以直接使用的。

gateway host

匹配使用host作为网关的数据包,即数据报中mac地址(源或目的)为host,但IP报的源和目的地址不是host的数据包。dst net net

src net net

net net

net net mask netmask

net net/len

匹配IPv4/v6地址为net网络的数据报。

其中net可以为192.168.0.0或192.168这两种形式。如net 192.168 或net 192.168.0.0

net net mask netmask仅对IPv4数据包有效,如net 192.168.0.0 mask 255.255.0.0

net net/len同样只对IPv4数据包有效,如net

192.168.0.0/16

dst portrange port1-port2

src portrange port1-port2

portrange port1-port2

匹配端口在port1-port2范围内的ip/tcp,ip/upd,ip6/tcp和ip6/udp数据包。dst, src分别指明源或目的。没有则表示src or dst

less length 匹配长度少于等于length的报文。

greater length 匹配长度大于等于length的报文。

ip protochain protocol 匹配ip报文中protocol字段值为protocol的报文

ip6 protochain protocol 匹配ipv6报文中protocol字段值为protocol的报文

如tcpdump 'ip protochain 6 匹配ipv4网络中的TCP报文,与tcpdump 'ip && tcp'用法一样,这里的&&连接两个primitive。6是TCP协议在IP报文中的编号。

ether broadcast

匹配以太网广播报文

ether multicast

匹配以太网多播报文

ip broadcast

匹配IPv4的广播报文。也即IP地址中主机号为全0或全1

的IPv4报文。

ip multicast

匹配IPv4多播报文,也就是IP地址为多播地址的报文。ip6 multicast

匹配IPv6多播报文,即IP地址为多播地址的报文。

vlan vlan_id

匹配为vlan报文,且vlan号为vlan_id的报文

到些为此,我们一直在介绍primitive是如何使用的,也即expression只有一个primitive。通过学会写好每个primtive,我们就很容易把多个primitive组成一个expression,方法很简单,通过逻辑运算符连接起来就可以了,逻辑运算符有以下三个:

“&&” 或”and”

“||” 或“or”

“!” 或“not”

并且可通过()进行复杂的连接运算。

如tcpdump ‘ip && tcp’

tcpdump ‘ host 192.168.240.3 &&( tcp po rt 80 || tcp port 443)’

通过上面的各种primitive,我们可以写出很丰富的条件,如ip, tcp, udp,vlan等等。如IP,可以按址址进行匹,tcp/udp 可以按端口匹配。但是,如果我想匹配更细的条件呢?如tcp

中只含syn标志,fin标志的报文呢?上面的primitive恐怕无能为力了。不用怕,tcpdump为你提供最后一个功能最强大的primitive,记住是primitive,而不是expression。你可以用多个这个的primitive组成更复杂的expression.

Linux下抓包工具tcpdump应用详解

TCPDUMP简介 在传统的网络分析和测试技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一。sniffer工具首先是为网络管理员和网络程序员进行网络分析而设计的。对于网络管理人员来说,使用嗅探器可以随时掌握网络的实际情况,在网络性能急剧下降的时候,可以通过sniffer 工具来分析原因,找出造成网络阻塞的来源。对于网络程序员来说,通过sniffer工具来调试程序。 用过windows平台上的sniffer工具(例如,netxray和sniffer pro软件)的朋友可能都知道,在共享式的局域网中,采用sniffer工具简直可以对网络中的所有流量一览无余!Sniffer 工具实际上就是一个网络上的抓包工具,同时还可以对抓到的包进行分析。由于在共享式的网络中,信息包是会广播到网络中所有主机的网络接口,只不过在没有使用sniffer工具之前,主机的网络设备会判断该信息包是否应该接收,这样它就会抛弃不应该接收的信息包,sniffer工具却使主机的网络设备接收所有到达的信息包,这样就达到了网络监听的效果。 Linux作为网络服务器,特别是作为路由器和网关时,数据的采集和分析是必不可少的。所以,今天我们就来看看Linux中强大的网络数据采集分析工具——TcpDump。 用简单的话来定义tcpdump,就是:dump the traffice on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 作为互联网上经典的的系统管理员必备工具,tcpdump以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的东东之一。 顾名思义,TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的FreeBSD系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。 普通情况下,直接启动tcpdump将监视第一个网络界面上所有流过的数据包。 ----------------------- bash-2.02# tcpdump

以太网常用抓包工具介绍_464713

v1.0 可编辑可修改 i RTUB_105_C1 以太网常用抓包工具介绍 课程目标: 课程目标1:了解常见抓包软件 课程目标2:掌握根据需要选择使用抓包软件并分析报文

v1.0 可编辑可修改 目录 第1章以太网常用抓包工具介绍.............................................................................................................. 1-1 1.1 摘要 ................................................................................................................................................ 1-1 1.2 简介 ................................................................................................................................................ 1-1 1.3 抓包工具介绍 ................................................................................................................................ 1-2 1.4 Sniffer使用教程 .......................................................................................................................... 1-3 1.4.1 概述 ..................................................................................................................................... 1-3 1.4.2 功能简介 ............................................................................................................................. 1-3 1.4.3 报文捕获解析 ..................................................................................................................... 1-4 1.4.4 设置捕获条件 ..................................................................................................................... 1-8 1.4.5 报文放送 ........................................................................................................................... 1-10 1.4.6 网络监视功能 ................................................................................................................... 1-12 1.4.7 数据报文解码详解 ........................................................................................................... 1-14 1.5 ethreal的使用方法 .................................................................................................................... 1-28 1.5.1 ethreal使用-入门 ......................................................................................................... 1-28 1.5.2 ethereal使用-capture选项 ......................................................................................... 1-30 1.5.3 ethereal的抓包过滤器 ................................................................................................... 1-31 1.6 EtherPeekNX ................................................................................................................................ 1-35 1.6.1 过滤条件设置 ................................................................................................................... 1-35 1.6.2 设置多个过滤条件 ........................................................................................................... 1-41 1.6.3 保存数据包 ....................................................................................................................... 1-45 1.6.4 分析数据包 ....................................................................................................................... 1-47 1.6.5 扩展功能 ............................................................................................................................. 1-1 1.6.6 简单分析问题的功能 ......................................................................................................... 1-5 1.6.7 部分解码功能 ..................................................................................................................... 1-9 1.6.8 案例 ..................................................................................................................................... 1-1 1.7 SpyNet ............................................................................................................................................ 1-1 1.7.1 使用简介 ............................................................................................................................. 1-1 1.7.2 使用步骤: ......................................................................................................................... 1-2 i

抓包工具演示

Wireshark抓包软件简单使用 wireshark是一款抓包软件,比较易用,在平常可以利用它抓包,分析协议或者监控网络。 一、抓包使用简单过程: Wireshark启动界面: 看到启动界面后,现在主要会用到这几个按钮:

2.点击“开始”获取抓取结果(抓取到的为未加密数据)

4.显示结果:

加密数据抓取: 抓取结果:

二、捕捉过滤器使用方法: Protocol(协议): 可能的值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp. 如果没有特别指明是什么协议,则默认使用所有支持的协议。 Direction(方向): 可能的值: src, dst, src and dst, src or dst 如果没有特别指明来源或目的地,则默认使用“src or dst”作为关键字。 例如,”host 10.2.2.2″与”src or dst host 10.2.2.2″是一样的。 Host(s): 可能的值:net, port, host, portrange. 如果没有指定此值,则默认使用”host”关键字。 例如,”src 10.1.1.1″与”src host 10.1.1.1″相同。 Logical Operations(逻辑运算): 可能的值:not, and, or. 否(“not”)具有最高的优先级。或(“or”)和与(“and”)具有相同的优先级,运算时从左至右进行。 例如,

“not tcp port 3128 and tcp port 23″与”(not tcp port 3128) and tcp port 23″相同。“not tcp port 3128 and tcp port 23″与”not (tcp port 3128 and tcp port 23)”不同。 例子: tcp dst port 3128 //捕捉目的TCP端口为3128的封包。 ip src host 10.1.1.1 //捕捉来源IP地址为10.1.1.1的封包。 host 10.1.2.3 //捕捉目的或来源IP地址为10.1.2.3的封包。 ether host e0-05-c5-44-b1-3c //捕捉目的或来源MAC地址为e0-05-c5-44-b1-3c的封包。如果你想抓本机与所有外网通讯的数据包时,可以将这里的mac地址换成路由的mac 地址即可。 src portrange 2000-2500 //捕捉来源为UDP或TCP,并且端口号在2000至2500范围内的封包。 not imcp //显示除了icmp以外的所有封包。(icmp通常被ping工具使用) src host 10.7.2.12 and not dst net 10.200.0.0/16 //显示来源IP地址为10.7.2.12,但目的地不是10.200.0.0/16的封包。 (src host 10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8 //捕捉来源IP为10.4.1.12或者来源网络为10.6.0.0/16,目的地TCP端口号在200至10000之间,并且目的位于网络10.0.0.0/8内的所有封包。 src net 192.168.0.0/24 src net 192.168.0.0 mask 255.255.255.0 //捕捉源地址为192.168.0.0网络内的所有封包。

linux之TCPDUMP网络抓包工具

Linux命令之TCPDUMP抓包 TCPDUMP又称网络数据包截获分析工具。支持针对网络层、协议、主机、网络或端口的过滤。并提供and、or、not等逻辑语句帮助去除无用的信息。 常用选项 -a 将网络地址和广播地址转变成名字 -d 将匹配信息包的代码以人们能够理解的汇编格式给出 -dd 将匹配信息包的代码以c语言程序段的格式给出 -ddd 将匹配信息包的代码以十进制的形式给出 -e 在输出行打印出数据链路层的头部信息 -f 将外部的Internet地址以数字的形式打印出来 -q 快速打印输出。即打印很少的协议相关信息,从而输出行都比较简短 -t 不显示时间 -l 使标准输出变为缓冲行形式 -n 不把网络地址转换成名字 -s 抓取数据包时默认抓取长度为68字节 -t 在输出的每一行不打印时间戳 -v 输出一个稍微详细的信息,如在ip包中可以包括ttl和服务类型的信息-v v 输出详细的报文信息 -c 在收到指定的包的数目后,tcpdump就会停止

-F 从指定的文件中读取表达式,忽略其它的表达式 -i 指定监听的网络接口 -r 从指定的文件中读取包(这些包一般通过-w选项产生) -w 直接将包写入文件中,并不分析和打印出来 -T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单网络管理协议) -n 对地址以数字方式显式,否则显式为主机名,也就是说-n选项不做主机名解析。 -nn 除了-n的作用外,还把端口显示为数值,否则显示端口服务名。 -X 输出包的头部数据,会以16进制和ASCII两种方式同时输出。 -XX 输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细。 一、不指定任何参数 监听第一块网卡上经过的数据包。主机上可能有不止一块网卡,所以经常需要指定网卡。这样抓取的结果会非常多,滚动非常快。 [qh@root localhost]$tcpdump 二、监听指定网卡 [qh@root localhost]$tcpdump -i eth0 三、监听指定主机

Tcpdump的安装

Tcpdump的安装(TCP/IP sniffer工具) 在如今众多的黑客技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一。用过windows平台上的sniffer工具(例如,netxray和sniffer pro软件)的朋友可能都知道,在共享式的局域网中,采用sniffer工具简直可以对网络中的所有流量一览无余!Sniffer工具实际上就是一个网络上的抓包工具,同时还可以对抓到的包进行分析。由于在共享式的网络中,信息包是会广播到网络中所有主机的网络接口,只不过在没有使用sniffer工具之前,主机的网络设备会判断该信息包是否应该接收,这样它就会抛弃不应该接收的信息包,sniffer工具却使主机的网络设备接收所有到达的信息包,这样就达到了网络监听的效果。其实,sniffer工具既可以适合于黑客的使用,也同样有利于网络管理员和网络程序员。对于网络管理人员来说,使用嗅探器可以随时掌握网络的实际情况,在网络性能急剧下降的时候,可以通过sniffer工具来分析原因,找出造成网络阻塞的来源。对于网络程序员来说,通过sniffer工具来调试程序。 下面就向大家介绍一个在linux下优秀的嗅探器-------tcpdump.(我们下面的 操作都在redhat 6.2 linux 2.2.14的环境中经过实际测试.) 一. Tcpdump的安装 在linux下tcpdump的安装十分简单,一般由两种安装方式。一种是以rpm 包的形式来进行安装。另外一种是以源程序的形式安装。 1.rpm包的形式安装 这种形式的安装是最简单的安装方法,rpm包是将软件编译后打包成二进制的格式,通过rpm命令可以直接安装,不需要修改任何东西。以超级用户登录,使用命令如下: #rpm -ivh tcpdump-3_4a5.rpm 这样tcpdump就顺利地安装到你的linux系统中。怎么样,很简单吧。 2.源程序的安装 既然rpm包的安装很简单,为什么还要采用比较复杂的源程序安装呢?其实,linux一个最大的诱人之处就是在她上面有很多软件是提供源程序的,人们可以修改源程序来满足自己的特殊的需要。所以我特别建议朋友们都采取这种源程序的安装方法。 ·第一步取得源程序在源程序的安装方式中,我们首先要取得tcpdump 的源程序分发包,这种分发包有两种形式,一种是tar压缩包(tcpdump-3_4a5.tar.Z),另一种是rpm的分发包(tcpdump-3_4a5.src.rpm)。这两种 形式的内容都是一样的,不同的仅仅是压缩的方式.tar的压缩包可以使用如下命令解开: #tar xvfz tcpdump-3_4a5.tar.Z rpm的包可以使用如下命令安装:

WIN8系统抓包工具使用介绍

抓包过程简要说明 对于工程上某些需要确认网管下发到设备上的数据或者设备上报给网管的数据正确性,需要对网卡进行数据抓包分析。现将详细的抓包方法进行说明(此版本抓包工具可用于windows server2003、WIN7和windows server2008操作系统上,其他的没试用过) 说明: windows server2008操作系统有两种,一种32位,一种64位。 查看操作系统位数的方法有两种(输入命令后可能会等待5~20s时间): 1、运行---输入“cmd”---在命令提示符窗口中输入“systeminfo”---找到其中的“System type:(系统类型)”对应的就是了。 2、运行DXDIAG就可以查看系统位数了。x86代表32位,X64代表64位! 该抓包工具根据操作系统位数有以下区别,x86为32位操作系统,x64为64位操作系统。本文档以32位操作系统为例进行说明。 步骤一:将附件的netmon_34.rar解压到任何位置,例如D:\ 步骤二:运行D:\netmon_3\ NM34_x86.exe文件,执行安装,步骤中全部选择默认安装即可。安装完成后,桌面会生成Microsoft Network Monitor 3.4的快捷图标。 步骤三:双击运行Microsoft Network Monitor 3.4,在菜单栏选择Tools->Options..可以看到下面的面板,在Faster Parsing上点击右键选择Create->Create From Selected,

步骤四:在Create New Parser Profile面板中可以自己命名Name(本例中命名为fiberhome_set,可自定义), 并选中路径列表中的第2项,然后选择Open Folder,

Tcpdump常用命令及基础故障定位

tcpdump基础 Tcpdump常用命令及基础故障定位3板斧! 在老4k系统和TOS中的.1平台和.8平台(猎豹)支持TCPDUMP命令。 Tcpdump中and、not、or、host、port、grep、-e、-vv参数的使用: 例1:在eth1口抓包,只显示地址为10.1.1.1和icmp协议的报文。 Tcpdump –i eth1 host 10.1.1.1 and icmp 例2:在所有的接口抓包,不显示4000端口的管理报文,和23端口的telnet报文。 Tcpdump –i any not port 4000 and not port 23 (在同时管理的时候很实用) 例3:在eth1口抓包,显示地址为211.1.1.1或10.1.1.1的报文。 Tcpdump –i eth1 host 211.1.1.1 or host 10.1.1.1 (针对MAP前后的地址同时抓包定位时非常实用) 例4:在所有的接口抓包,显示地址为10.1.1.1报文。 Tcpdump |grep host 10.1.1.1 (在adls环境中非常实用,封装了PPPOE的报文也能抓到,但是TOS不支持grep 的参数了) 在tos系统中,X86的平台下才有抓包的工具,-n表示不需要域名解析,加快抓包的速度。 并且-evv比老的4k系统中,能抓到更多的信息,其中还包括校验和。 例5:System tcpdump –i any –evv -n (TOS系统中最后必须加-n的参数,才能保证抓包的速度) 例6:System tcpdump –i ipsec0-n(TOS支持在ipsec0中抓包,来判断数据流是否进入隧道) 例7:System tcpdump –i ppp0-n(TOS支持在ppp0中抓包,来判断数据流是否进入PPPoE的封装) 下面的4个实例,详细阐述了目的地址转换时如何通过TCPDUMP抓包来快速定位故障点。 现场通过抓包来定位故障原因是最准确高效的方法: 下面抓包中,客户端源地址为168.36.126.1MAP地址为209.136.47.12服务器真实地址为11.68.21.12 对于目的地址转换,天融信也俗称为MAP转换。 例1、如果业务、ping都不通,抓包时只有第一个请求报文,没有匹配MAP转换,说明: A: 防火墙没有到真实服务器的路由,而导致不能匹配MAP策略。 B: 或者是防火墙上没有开放对应的访问策略。 TOS# system tcpdump -i any host 168.36.126.1 -n 04:19:03.400000 IP 168.36.126.1 > 209.136.47.12: ICMP echo request, id 10706, seq 4161, length 64 例2、如果业务、ping都不通,抓包是匹配了MAP转换策略,说明: A: 对方的服务没有回应。 B: 或者对方回应了但是路由错误,回应数据包没有到防火墙。 TOS# system tcpdump -i any host 168.36.126.1 -n 04:19:03.400000 IP 168.36.126.1 > 209.136.47.12: ICMP echo request, id 10706, seq 4161, length 64 04:19:03.404216 IP 168.36.126.1 > 11.68.21.12: ICMP echo request, id 10706, seq 4161, length 64 例3、如果业务、ping都不通,抓包显示最后一个报文没有正常转换,说明: A: 防火墙上没有回指路由,而导致最后的报文没有发出。 TOS# system tcpdump -i any host 168.36.126.1 -n 04:19:03.400000 IP 168.36.126.1 >209.136.47.12: ICMP echo request, id 10706, seq 4161, length 64

tcpdump抓包高级用法

tcpdump抓包高级用法 【表达式】tcpdump –i ethx ether[xx:yy]=0xabcde… -nn 【说明】普通的tcpdump抓包后面直接跟主机,端口或协议等过滤条件,而这种抓包方法在某些环境下是无法使用的,如有QinQ,lwapp,wltp,pppoe等协议封装时,要抓电脑真实IP的数据包便实现不了。高级抓包方法可以满足,特别是在wlan环境下,经过我们设备的数据流都是经过隧道封装的,所以只能用高级抓包方法。高级抓包方法中的过滤条件为ether[xx:yy]=0xabcd….,表示从以太网帧头部开始偏移xx字节后的yy个字节的值是十六进制abcd….。如tcpdump –i eth0 ether[92:4]=0xab0d4f9c –nn,表示在eth0抓取符合下面条件的数据包,从以太网帧第92字节开始,后面4个字节的值为十六进制ab0d4f9c的所有数据包。这种抓包方法要求我们事先算好过滤条件对应的十六进制及其偏移值。下面举个例子说明。 【案例】如附件中的数据包,是wlan环境下隧道封装的数据包,用抓包软件打开只能看到隧道头地址,无法看到隧道内真实的IP地址。隧道内真实的IP所在的段为111.14.0.0/16,现要抓取111.14.236.138这个地址的数据包。 1.将111.14.236.138这个IP地址转换为十六进制为0x6f0eec8a 2.在eth0将所有的数据包抓100个下来(tcpdump –i eth0 –s0 –c 100 –w /tmp/test.pcap),如附件,用wireshark打开,找到隧道内真实IP地址,再算出真实IP地址偏移以太网头的字节数(这里应该会有问到怎样找到隧道内真实的IP头,请参考文章自定义协议剥离配置说明)。 3.这里已经算出来,111.14.0.0/16段的上行数据偏移以太网头92字节,下行数据偏移以太网头96字节,所以抓取111.14.236.138这个地址的所有数据包,tcpdump表达式应该如下:tcpdump –i eth0 ether[92:4]=0x6f0eec8a or ether[96:4]=0x6f0eec8a –nn

Tcpdump命令详解

tcpdump用法详解(1) (2006-04-13 14:23:04) 转载 分类:Linux专题 tcpdump采用命令行方式,它的命令格式为: tcpdump [ -adeflnNOpqStvx ] [ -c 数量] [ -F 文件名] [ -i 网络接口] [ -r 文件名] [ -s snaplen ] [ -T 类型] [ -w 文件名] [表达式] (1). tcpdump的选项介绍 -a 将网络地址和广播地址转变成名字; -d 将匹配信息包的代码以人们能够理解的汇编格式给出; -dd 将匹配信息包的代码以c语言程序段的格式给出; -ddd 将匹配信息包的代码以十进制的形式给出; -e 在输出行打印出数据链路层的头部信息; -f 将外部的Internet地址以数字的形式打印出来; -l 使标准输出变为缓冲行形式; -n 不把网络地址转换成名字; -t 在输出的每一行不打印时间戳; -v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息; -vv 输出详细的报文信息; -c 在收到指定的包的数目后,tcpdump就会停止; -F 从指定的文件中读取表达式,忽略其它的表达式; -i 指定监听的网络接口; -r 从指定的文件中读取包(这些包一般通过-w选项产生); -w 直接将包写入文件中,并不分析和打印出来; -T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单网络管理协议;)

(2). tcpdump的表达式介绍 表达式是一个正则表达式,tcpdump利用它作为过滤报文的条件,如果一个报文满足表达式的条件,则这个报文将会被捕获。如果没有给出任何条件,则网络上所有的信息包将会被截获。在表达式中一般如下几种类型的关键字。 第一种是关于类型的关键字,主要包括host,net,port, 例如host 210.27.48.2,指明210.27.48.2是一台主机,net 202.0.0.0 指明202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是host. 第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src ,这些关键字指明了传输的方向。举例说明,src 210.27.48.2 ,指明ip包中源地址是210.27.48.2 , dst net 202.0.0.0 指明目的网络地址是202.0.0.0 。如果没有指明方向关键字,则缺省是src or dst关键字。 第三种是协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI(分布式光纤数据接口网络)上的特定的网络协议,实际上它是"ether"的别名,fddi和ether具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和分析。其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump将会监听所有协议的信息包。 除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less,greater,还有三种逻辑运算,取非运算是'not ' '! ', 与运算是'and','&&';或运算是'or' ,'││';这些关键字可以组合起来构成强大的组合条件来满足人们的需要,下面举几个例子来说明。 A想要截获所有210.27.48.1 的主机收到的和发出的所有的数据包: #tcpdump host 210.27.48.1 B想要截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信,使用命令:(在命令行中适用括号时,一定要 #tcpdump host 210.27.48.1 and (210.27.48.2 or 210.27.48.3 ) C如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令: #tcpdump ip host 210.27.48.1 and ! 210.27.48.2 D如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令: #tcpdump tcp port 23 host 210.27.48.1

抓包工具使用简介

抓包工具wireshark使用简介 在wireshark安装包安装完成后,以管理员身份运行Wireshark.exe,进入wireshark主界面,如图1-1所示。 图1-1 wireshark主界面 在主界面上,在菜单栏中选择Capture->interface,在点击interface按钮弹出的对话框中点击start按钮,进入如图1-2所示界面。 图1-2启动wireshark 当您在客户端点击某路视频时,会出现如图1-3所示界面,目前我们播放视频采用的是UDP协议,你在抓包工具中看到的大部分数据包都是UDP数据包。此时如果你只想去查看给某台机器上发的数据包时,可以通过过滤条件进行过滤,比如我只想查看我给172.20.32.168这台机器上发送的数据包,那么你只需要在Filter后面输入

ip.dst==172.20.32.168即可,需要注意的是这里是“==”而不是“=”。多个条件之间用&&。 数据过滤操作如图1-4所示。 图1-3 视频数据展示界面 图1-4数据过滤界面 此时你看到的数据包就都是发给172.20.32.168的UDP数据包,此处需要说明的是如果你点击视频时播放不出来视频,那么是不会有持续的UDP数据包发给指定的客户端的,客户端控件播放不出来视频那就不是控件的问题了,因为就根本没有视频数据包发送到客户端。 如果你在抓包时发现有持续的数据包时,那么你想看一下你抓的数据包是否正常,能不能播放出来,那么也可以通过wireshark将抓的数据包保存成文件用VLC播放试一下,具体操作流程如下: (1)点击某条视频数据,右键选择decode as(如图1-5),此时会弹出如图1-6所示界面;(2)在如图1-6所示的界面上选择RTP,点击OK,此时就会把所有的UDP数据包转换成RTP数据包,转换之后界面如图1-7所示; (3)在图1-7所示的界面上,在菜单栏中选择Telephony,在下拉的菜单中选择RTP,在其子菜单中选择Stream analysis,会弹出如图1-8所示界面; (4)在图1-8所示的界面上点击Savepayload按钮,进入视频保存页面(如图1-9),选择你保存的位置并设置保存的视频文件名; (5)此时就会在保存的目录下生成出来对应的视频文件,此处需要说明的是视频文件不

tcpdump抓包并保存成cap文件

tcpdump抓包并保存成cap文件 首选介绍一下tcpdump的常用参数 tcpdump采用命令行方式,它的命令格式为: tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ] [ -i 网络接口 ] [ -r 文件名] [ -s snaplen ] [ -T 类型 ] [ -w 文件名 ] [表达式 ] 1. tcpdump的选项介绍 -a 将网络地址和广播地址转变成名字; -d 将匹配信息包的代码以人们能够理解的汇编格式给出; -dd 将匹配信息包的代码以c语言程序段的格式给出; -ddd 将匹配信息包的代码以十进制的形式给出; -e 在输出行打印出数据链路层的头部信息; -f 将外部的Internet地址以数字的形式打印出来; -l 使标准输出变为缓冲行形式; -n 不把网络地址转换成名字; -t 在输出的每一行不打印时间戳; -v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息; -vv 输出详细的报文信息; -c 在收到指定的包的数目后,tcpdump就会停止; -F 从指定的文件中读取表达式,忽略其它的表达式; -i 指定监听的网络接口; -r 从指定的文件中读取包(这些包一般通过-w选项产生); -w 直接将包写入文件中,并不分析和打印出来; -T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc(远程过程 调用)和snmp(简单网络管理协议;) 当网络出现故障时,由于直接用tcpdump抓包分析有点困难,而且当网络中数据比较多时更不容易分析,使用tcpdump的-w参数+ethereal分析会很好的解决这个问题,具体参数如下: tcpdump -i eth1 -c 2000 -w eth1.cap -i eth1 只抓eth1口的数据 -c 2000代表数据包的个数,也就是只抓2000个数据包 -w eth1.cap 保存成cap文件,方便用ethereal分析 抓完数据包后ftp到你的FTP服务器,put一下,然后用ethereal软件打开就可以很直观的分析了 注:有时将.cap文件上传到FTP服务器后,发现用ethreal打开时提示数据包大于65535个,这是你在ftp上传或者下载的时候没有用bin的模式上传的原因。另:有的网站提示在tcpdump中用-s 0命令,例如 tcpdump -i eth1 -c 2000 -s0 -w eth1.cap,可实际运行该命令时系统却提示无效的参数,去掉-s 0参数即可例子: [root@localhost cdr]#tcpdump -i eth0 -t tcp -s 60000 -w diaoxian.cap [root@localhost cdr]# tcpdump host 58.240.72.195 -s 60000 -w x.cap

TCPdump抓包及分析方法1

1关键字 Tcpdump,丢包,抓包 2Tcpdump抓包的作用 Tcpdump是linux系统自带的抓包工具,功能: >抓进出Linux服务器的IP包 >抓下的IP包,可由WireShark等工具,解码为UDP和RTP包。 >抓下的IP包,可由WireShark等工具分析丢包情况 3Tcpdump常用方法 Tcpdump是linux系统自带的抓包工具,需要root权限才能运行。 //抓网卡eth2上所有进出的数据包,如果没有数据包,则通常会抓到广播包 数会保留所有TS数据包,故重要。 3.4指定入向端口 设入向端口为11866,转换为十六进制,即是0x2e5a,所以: 其中,ether[36]和ether[37]为接收端口的16进制表示。 3.5指定出向端口 其中, Ether[34]和ether[35]为发送端口的16进制表示。 3.6长时间抓包 在抓包命令后加“-C 100”,它会满100M后写到下一个新的文件。直到磁盘满。 3.7后台执行 在抓包命令最后面再加一个&,这样可以后台一直抓。这样的话,登录窗口可以关掉。你想停止抓包,则得用PS把进程杀死。

4抓包分析快进快退 4.1找关键帧 RTP包是否为关键帧的标识保存在RTP扩展位中。WireShark查看RTP包是否为关键帧。 00或者10:普通帧 20或者30: 关键帧首包 40或者50: 关键帧中间包 80或者90: 关键帧尾包 注:以上判断之所以有“或者”,是因为关键帧位只占了3比特。 4.2判断时戳 如果抓包为32倍速,要判断时戳是否正常,则可以用抓包里的: (最大时戳-最小时戳)/90000/倍速=倍速播放时常

tcpdump抓包

tcpdump 必须使用 root 的身份执行 [root@linux ~]# tcpdump [-nn] [-i 接口] [-w 储存档名] [-c 次数] [-Ae] [-qX] [-r 档案] [所欲撷取的数据内容] 参数: -nn:直接以 IP 及 port number 显示,而非主机名与服务名称 -i :后面接要『监听』的网络接口,例如 eth0, lo, ppp0 等等的界面; -w :如果你要将监听所得的封包数据储存下来,用这个参数就对了!后面接档名 -c :监听的封包数,如果没有这个参数, tcpdump 会持续不断的监听, 直到使用者输入 [ctrl]-c 为止。 -A :封包的内容以 ASCII 显示,通常用来捉取 WWW 的网页封包资料。 -e :使用资料连接层 (OSI 第二层) 的 MAC 封包数据来显示; -q :仅列出较为简短的封包信息,每一行的内容比较精简 -X :可以列出十六进制 (hex) 以及 ASCII 的封包内容,对于监听封包内容很有用 -r :从后面接的档案将封包数据读出来。那个『档案』是已经存在的档案,并且这个『档案』是由 -w 所制作出来的。 所欲撷取的数据内容:我们可以专门针对某些通讯协议或者是 IP 来源进行封包撷取,那就可以简化输出的结果,并取得最有用的信息。常见的表示方法有: 'host foo', 'host 127.0.0.1' :针对单部主机来进行封包撷取 'net 192.168' :针对某个网域来进行封包的撷取; 'src host 127.0.0.1' 'dst net 192.168':同时加上来源(src)或目标(dst)限制 'tcp port 21':还可以针对通讯协议侦测,如 tcp, udp, arp, ether 等还可以利用 and 与 or 来进行封包数据的整合显示呢! 范例一:以121.9.240.130这台测试机为基础. [root@linux ~]# tcpdump 09:25:40.856970 IP 59.37.164.34.12670 > 121.9.222.91.15649: UDP, length 82 09:25:40.857025 IP 121.9.222.64.15583 > https://www.360docs.net/doc/9711128921.html,.3001: UDP, length 82 09:25:40.857026 IP 121.9.223.171.25511 > 222.223.23.168.2471: P 1681367693:1681367882(189) ack 169128214 win 65455 09:25:40.857027 IP 121.9.222.182.15502 > 218.15.245.162.16059: UDP, length 14 09:25:40.857068 IP 119.132.101.206.3001 > 121.9.222.183.15164: UDP, length 82 09:25:40.857118 IP 121.9.222.175.15693 > 202.101.190.242.3001: UDP, length 82 09:25:40.857119 IP 121.9.222.175.15693 > 202.101.190.242.3001: UDP, length 82 09:25:40.857121 IP 59.34.127.210.43659 > 121.9.222.243.15716: UDP, length 14 09:25:40.857122 IP 121.9.222.87.15030 > 119.132.101.206.3001: UDP, length 14 09:25:40.857123 IP 121.9.222.88.15278 > 113.14.161.238.3001: UDP, length 14 09:25:40.857170 IP https://www.360docs.net/doc/9711128921.html,.3001 > 121.9.222.93.15400: UDP, length 14 09:25:40.857218 IP 58.242.202.10.3001 > 121.9.222.87.15300: UDP, length 10 09:25:40.857219 IP https://www.360docs.net/doc/9711128921.html,.3001 > 121.9.222.242.14920: UDP, length 18

相关文档
最新文档