tcpdump抓包

一. 选项

tcpdump支持相当多的参数,如使用-i参数指定tcpdump监听的网络界面,这在计算机具有多个网络界面时非常有用,使用-c参数指定要监听的数据包数量,使用-w参数指定将监听到的数据包写入文件中保存,等等。如下:

-a 将网络地址和广播地址转变成名字;

-b 在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的。

-c 指定要监听的数据包数量,在收到指定的包的数目后,tcpdump就会停止.

-d 将匹配信息包的代码以人们能够理解的汇编格式给出;

-dd 将匹配信息包的代码以c语言程序段的格式给出;

-ddd 将匹配信息包的代码以十进制的形式给出;

-e 在输出行打印出数据链路层的头部信息;

-F 从指定的文件中读取表达式,忽略其它的表达式;

-f 将外部的Internet地址以数字的形式打印出来;

-i 指定监听的网络接口,这在计算机具有多个网络接口时非常有用.

-l 用于输出为行缓冲的形式,可以将数据重定向。

-N 不打印出默认的域名。前面信息-N后就是:eth0 < ntc9.1165 > router.telnet。

-n 不进行IP地址到主机名的转换。如果不使用这一项,当系统中存在某一主机的主机名时,TcpDump会把IP地址转换为主机名显示,就像这样:eth0 < ntc9.1165> router.domain.net.telnet,使用-n后变成了:eth0 < 192.168.0.9.1165 > 192.168.0.1.telnet。

-nn 不进行端口名称的转换。前面那条信息使用-nn后就变成了:eth0 < ntc9.1165 > router.domain.net.23。

-O 不进行匹配代码的优化。

-r 从指定的文件中读取包(这些包一般通过-w选项产生);

-T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单网络管理协议;)

-t 在输出的每一行不打印时间戳;

-tt 打印原始的、未格式化过的时间。

-v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;

-vv 输出详细的报文信息;

-w 指定将监听到的数据包写入文件中保存而并不分析和打印出来.

二. 实例

1.监视第一个网络界面上所有流过的数据包:

tcpdump

普通情况下,直接启动tcpdump将监视第一个网络界面上所有流过的数据包,注意这里使用超级用户。当用户上网得时候,就会将监视得数据打印出来。

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

tcpdump -i eth1

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

3.监视指定主机的数据包:

tcpdump host sundown

tcpdump host 210.27.48.1

4.监视指定主机和端口的数据包:

tcpdump tcp port 23 host 210.27.48.1

5.重定向输出:

tcpdump -l >tcpcap.txt

将得到的数据存入tcpcap.txt文件中。

6.匹配一次:

tcpdump -c 1

这样就只匹配一个包,然后tcpdump就退出。

7.监视指定主机和另外主机之间得通信:

tcpdump host 10.126.1.222 and (10.126.1.1 or 10.126.1.13 )

将监视主机10.126.1.222和10.126.1.1或者10.126.1.13之间的通信,注意这里得括号。

8.监视时排除某一主机:

tcpdump ip host 10.126.1.1 and ! 10.126.1.13

这里监视10.1.6.1.1除了和10.126.1.13之外所有主机的通信。

9.指定源主机和目的网络的过滤:

tcpdump src host 10.126.1.222 and dst net 10.126.1.0/24

过滤的是源主机为10.126.1.222与目的网络为10.126.1.0/24的报头。

10.匹配指定网络:

tcpdump -i eth1 net 10.1.10.0 mask 255.255.255.0

这里有掩码只支持IPV4,或者使用"tcpdump 10.1.10.0/24",同样这个格式只对IPV4有用。

11.监视指定主机指定协议的包:

tcpdump ip host 10.126.1.13

这里监视主机10.126.1.13收发的所有ip包。

12.监视指定主机和端口的数据包:

tcpdump -i eth0 host 10.126.1.1 and port 80

监视10.126.1.1端口80的TCP或UDP数据包

13.监视指定方向和接口的包1:

tcpdump -i eth0 src host 10.126.1.222

监视10.126.1.222发送的,eth0上面的包。

14.监视指定方向和接口的包2:

tcpdump -i eth0 dst host 10.126.1.222

监视10.126.1.222接收的,eth0上面的包。

15.监视指定链路层信息:

tcpdump -b arp

只显示网络中的arp即地址转换协议信息。

16.过滤源主机mac为00:50:04:BA:9B的报头:

tcpdump ether src 00:24:7e:03:62:14

可以使用ifconfig查看本地主机的mac,使用arp -n来查看本地已知其他主机的mac。

17.过滤源主机为10.126.1.222目的主机端口不是telnet的报文:

tcpdump src host 10.126.1.222 and dst port not telnet

18.匹配ether包:

tcpdump -i eth1 ‘ether src 00:24:7e:03:62:14‘

将会在eth1上面监听来自mac为"00:24:7e:03:62:14"的数据包。

19.监听ip广播组播数据包 :

tcpdump ‘ip dst 192.168.240.255‘

只需指明广播或组播地址即可。在同一个局域网的另一台主机运行"ping -b 192.168.240.255"即可发送ICMP的广播包。

20.监听80端口的tcp数据包:

tcpdump ‘tcp dst port 80‘

一般HTTP的通信数据,只需指定匹配端口为80的条件即可。

21.匹配arp包:

tcpdump arp

可以使用"arping "产生arp请求和接收答应报文,使用"tcpdump -p ‘arp‘"来监视,此处-p选项是使网络工作于正常模式(非混杂模式),这样是方便查看匹配结果,我们可以使用"ssh -p 80 "或者"wget <下载地址>"来产生http包。

22.监视通过指定网关的数据包:

tcpdump gateway hostname

23.匹配端口53上的udp数据包:

tcpdump ‘upd port 53‘

实际53号端口是DNS协议所用的端口,可以用‘ping -c 1 www.tt.com来产生DNS请求和答应。

24.抓取wireshark工具能够分析的包:

tcpdump -w dumpfile.pcap

这样抓取内容存放在dumpfile.pcap中,可以用wireshark图形工具进行分析。有的说需要加-s参数,例如"tcpdump -s 0 -w dumpfile.pcap"。

三. tcpdump 与wireshark:

Wireshark(以前是ethereal)是Windows下非常简单易用的抓包工具。但在Linux下很难找到一个好用的图形化抓包工具。还好有Tcpdump。我们可以用Tcpdump + Wireshark 的完美组合实现:在 Linux 里抓包,然后在Windows 里分析包。

tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap

(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
(2)-i eth1 : 只抓经过接口eth1的包
(3)-t : 不显示时间戳
(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包
(5)-c 100 : 只抓取100个数据包
(6)dst port ! 22 : 不抓取目标端口是22的数据包
(7)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24
(8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析

时间: 2024-10-11 23:14:39

tcpdump抓包的相关文章

tcpdump抓包分析具体解释

說實在的,對於 tcpdump 這個軟體來說,你甚至能够說這個軟體其實就是個駭客軟體, 因為他不但能够分析封包的流向,連封包的內容也能够進行『監聽』, 假设你使用的傳輸資料是明碼的話,不得了,在 router 上面就可能被人家監聽走了! 非常可怕吶!所以,我們也要來瞭解一下這個軟體啊!(註:這個 tcpdump 必須使用 root 的身份執行) [[email protected] ~]# tcpdump [-nn] [-i 介面] [-w 儲存檔名] [-c 次數] [-Ae] [-qX] [

TCP三次握手及tcpdump抓包

1. TCP报文段的首部格式 说明: ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1 SYN(SYNchronization) : 在连接建立时用来同步序号.当SYN=1而ACK=0时,表明这是一个连接请求报文.对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1. 因此,  SYN置1就表示这是一个连接请求或连接接受报文 FIN (finis)即完,终结的意思, 用来释放一个连接.当 FIN = 1 时,表明此报文段的发送方的数据已经发

Android下通过tcpdump抓包

参考:http://www.cnblogs.com/likwo/archive/2012/09/06/2673944.html 最近因为测试需要,要抓手机APP的包. a.手机要有root权限 b.下载tcpdump   http://www.strazzere.com/android/tcpdump c.此处原文采用 adb push 将 tcpdump 文件拷贝到 /data/local  不过我执行此操作时发现权限不够(手机已经root)换用管理者运行 CMD还是不行,最后决定直接在手机上

[转]Linux操作系统tcpdump抓包分析详解

PS:tcpdump是一个用于截取网络分组,并输出分组内容的工具,简单说就是数据包抓包工具.tcpdump凭借强大的功能和灵活的截取策略,使其成为Linux系统下用于网络分析和问题排查的首选工具. tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具.tcpdump存在于基本的Linux系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息.因此系统中存在网络分析工具主要不是对本

linux使用tcpdump抓包工具抓取网络数据包,多示例演示

tcpdump是linux命令行下常用的的一个抓包工具,记录一下平时常用的方式,测试机器系统是ubuntu 12.04. tcpdump的命令格式 tcpdump的参数众多,通过man tcpdump可以查看tcpdump的详细说明,这边只列一些笔者自己常用的参数: tcpdump [-i 网卡] -nnAX '表达式' 各参数说明如下: -i:interface 监听的网卡. -nn:表示以ip和port的方式显示来源主机和目的主机,而不是用主机名和服务. -A:以ascii的方式显示数据包,

tcpdump 抓包 通过 Wireshark分析抓包文件

1. tcpdump的基本原理 1.1  tcpdump starce 的区别 在本机中的进程的系统行为调用跟踪,starce   是一个很好的工具:但是在网络问题的调试中,tcpdump 应该是一个必不可少的工具:能清晰分析网络通信的信息. 默认情况下,tcpdump 不会抓取本机内部通讯的报文   :根据网络协议栈的规定,对于报文,即使是目的地是本机(自己和自己通信),也需要经过本机的网络协议层,所以本机通讯肯定是通过API进入内核,并且完成路由选择.[比如本机的TCP通信,也必须要sock

Wireshark和TcpDump抓包分析对比

常见的抓包分析工具有:微软的Network Monitor和Message Analyzer.Sniff.WSExplorer.SpyNet.iptools.WinNetCap.WinSock Expert.Wireshark和linux的tcpdump等工具 今天,做了实验测试就对比分析其中的两款,其他的大家可以百度谷歌测试一哈^_^ 1. Wireshark与tcpdump介绍 Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Windows平台下使用

tcpdump抓包脚本

由于最近服务器流量异常所以写了一个简单的shell抓包脚本,每间隔10分钟进行一次抓包分别保存在不同的文件当中,脚本如下: #!/bin/sh #This is tcpdump script one=1two=2while (( $one != $two ))dosleep 1TIME=`date +%F"-"%H:%M:%S`tcpdump -i eth0  -s 0 -w tcpdum.$TIME &sleep 600ps -ef|grep tcpdump|grep -v

Android通过tcpdump抓包

1. 手机要有root权限 2. 下载tcpdump   http://www.strazzere.com/android/tcpdump 3.tcpdumptcpdump 4. adb shell chmod 6755 /data/local/tcpdump 5, adb shell,   su获得root权限 6, cd /data/local 7, ./tcpdump -i any -p -s 0 -w /sdcard/capture.pcap 命令参数: # "-i any":

tcpdump 抓包

简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的"头"完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供and.or.not等逻辑语句来帮助你去掉无用的信息. 实用命令实例 默认启动 tcpdump 普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包. 监视指定网络接口的数据包 tcpdu