tcpdump
- 格式:docx
- 大小:116.06 KB
- 文档页数:64
tcpdump用法tcpdump是一个功能强大的网络分析工具,能够捕获网络上的数据包,用于网络故障排除、网络性能监控以及网络安全审计等目的。
它支持多种网络协议,支持文本输出和二进制输出。
本文将介绍tcpdump的使用方法,以及它的参数详解。
#### 一、基本用法tcpdump的基本用法非常简单:```tcpdump [options]```它默认以单个模式运行,在一次持续抓包过程中,一直以标准输出格式显示网络数据包,每条信息显示一个数据包信息,直到用户中断或者网络停止发包为止。
#### 二、抓包参数tcpdump参数繁多,但常用参数主要有以下几类:**1.滤参数*** -net据子网抓包,支持IPv4和IPv6,比如`-net192.168.1.0/24`* -host据网络主机抓包,支持IPv4和IPv6,比如`-host 192.168.1.1`* -port据端口号抓包,比如`-port 80`**2.示参数*** -X示数据包的十六进制与ASCII文本,通常用于检测网络攻击和病毒* -v示更详细的抓取信息,比如IP地址、端口号等* -vv示更详细的抓取信息,同时把协议中的详细信息也显示出来**3.能参数*** -r 以二进制文件的方式读取已保存的抓包数据,一般用于进行离线分析* -w 以二进制文件的方式将抓取的数据保存下来,方便以后分析* -c定抓包的数量,比如`-c 1000`表示只抓前1000条数据包 #### 三、高级用法tcpdump还支持一些高级参数,用于更加精确的抓包,主要有:**1.络接口*** -i定抓包的网络接口,比如`-i eth0`表示从eth0接口抓包 * -B定抓包的带宽,比如`-B 500K`表示最高抓取500K的数据 **2.滤表达式*** -e取数据的过滤表达式,比如`-e tcp[14:2]==0x0514`表示过滤TCP标志和序号为0x0514的数据包* -d取数据的过滤表达式,等效于-e参数**3.符编码*** -n取数据时,不解析DNS和hostname* -t 不显示时间戳* -S示源地址和目的地址* -c定抓取数据包个数* -q 以简单的形式显示,不显示协议头信息####、实战以抓取IP地址为192.168.1.1的80端口的HTTP请求为例,使用tcpdump命令如下:```tcpdump -i eth0 -nn -s 0 -XS host 192.168.1.1 and port 80```以上命令的含义为,从网卡eth0接口上抓取长度为0的数据包,目标地址为192.168.1.1,且端口号为80的数据包,并以十六进制与ASCII格式显示出来。
TCPDump是一个流行的网络数据包分析工具,它用来捕获和解析网络数据包。
在TCPDump中,我们经常会看到length字段,它表示捕获的数据包的长度。
但是,很多人对length字段的单位存在一定的困惑。
本文将详细介绍TCPDump中length字段的单位问题,帮助读者更好地理解和使用TCPDump工具。
一、TCPDump工具简介TCPDump是一个常用的网络数据包分析工具,它可以在Linux、Unix和Windows评台上运行,并且支持各种各样的协议。
TCPDump可以捕获网络数据包并以文本形式打印出来,用户可以通过TCPDump来分析网络流量、排查网络问题等。
二、TCPDump中的length字段在TCPDump的输出中,每个数据包都会显示其长度信息,例如:```10:01:12.xxx IP 192.168.1.2.1234 > 192.168.1.3.5678: Flags [P.], length 100```在上述例子中,length字段显示了捕获的数据包的长度。
然而,很多用户对length字段的单位存在疑惑。
三、TCPDump中length字段的单位实际上,在TCPDump中,length字段的单位是字节。
也就是说,length字段显示的数值代表了捕获的数据包的字节数。
这意味着,用户可以根据length字段的数值来判断数据包的大小,进而分析网络流量、监控网络性能等。
四、TCPDump中length字段的作用length字段是TCPDump中非常重要的一个字段,它可以帮助用户了解捕获的数据包的大小情况。
通过分析length字段,用户可以判断网络流量的大小、传输的数据量等,从而更好地进行网络优化、性能调优等工作。
五、使用TCPDump进行网络分析的注意事项在使用TCPDump进行网络分析时,用户需要注意以下几点:1. 多关注length字段:length字段可以帮助用户了解捕获的数据包的大小情况,因此在进行网络分析时,用户需要多关注length字段,从而更好地了解网络流量的特征。
tcpdump 筛选语法`tcpdump` 是一个常用的网络抓包工具,用于捕获和查看网络上的数据包。
它的筛选语法允许用户根据各种条件来过滤数据包。
以下是一些常用的 `tcpdump` 筛选语法:1. 基本筛选:`host <IP地址>`: 捕获到指定IP地址的数据包。
`net <IP地址/子网掩码>`: 捕获指定网络范围内的数据包。
`port <端口号>`: 捕获到指定端口的数据包。
`protocol <协议类型>`: 捕获指定协议类型的数据包,如TCP、UDP等。
2. 更复杂的筛选:`src <源IP地址>`: 捕获源IP地址为指定IP的数据包。
`dst <目的IP地址>`: 捕获目的IP地址为指定IP的数据包。
`<协议类型> and <协议类型>`: 结合多个协议类型进行筛选。
`not <条件>`: 排除满足指定条件的数据包。
3. 其他:`icmp[icmptype] <ICMP类型>`: 捕获特定类型的ICMP数据包。
`tcp[tcpflags] <TCP标志位>`: 捕获具有特定TCP标志位的数据包。
`<时间范围>`: 使用时间范围进行筛选,如 `-tttt` 显示时间戳。
4. 表达式:可以使用逻辑运算符如`and`, `or`, 和 `not` 来组合多个条件。
5. 过滤特定协议:例如,要捕获所有HTTP请求和响应,你可以使用:```csstcpdump port 80 and tcp[tcpflags] & (tcp-syntcp-ack) != 0```6. 过滤特定MAC地址:使用`ether`关键字:```csstcpdump ether host <MAC地址>```7. 过滤特定IP地址或子网:使用`ip`关键字:```csstcpdump ip host <IP地址> or ip net <子网掩码>```8. 过滤特定端口:除了使用`port`关键字,还可以使用服务名称:```csstcpdump ftp or http or telnet or dns```9. 基于时间的筛选:使用`-tttt`选项可以显示时间戳,然后结合时间范围进行筛选:```csstcpdump -tttt "time > '开始时间' and time < '结束时间'"```10. 基于大小筛选:例如,要筛选大于100字节的数据包:```csstcpdump greater 100```11. 其他高级选项:查看`man tcpdump`以获取更多详细信息和高级功能。
TCPDump是一个开源的网络分析工具,可以用来捕获、分析和显示网络数据包。
它支持在命令行中使用不同的过滤器语法,以便用户可以根据特定的条件来捕获所需的数据包。
本文将针对TCPDump的filter语法进行详细介绍,包括语法规则、常用过滤条件和实际应用。
一、filter语法规则1. 过滤器的基本结构过滤器的基本结构为:tcpdump [expression]其中expression表示过滤条件,可以根据需要进行自定义设置。
2. 逻辑连接词过滤条件可以通过逻辑连接词进行组合,常见的逻辑连接词包括:- and:表示并且的关系- or:表示或者的关系- not:表示取反的关系通过逻辑连接词的组合,可以实现更加复杂的过滤条件。
3. 过滤条件的格式过滤条件的格式可以分为三种:- 主机:表示指定主机的数据包- 网络:表示指定网络的数据包- 端口:表示指定端口的数据包在实际使用中,可以根据需要进行灵活组合,以满足具体的网络分析需求。
二、常用过滤条件1. 根据主机进行过滤可以使用主机IP位置区域进行过滤,格式为:host [IP位置区域]要捕获IP位置区域为192.168.0.1的主机发送和接收的数据包,可以使用如下过滤条件:tcpdump host 192.168.0.12. 根据网络进行过滤可以使用网络位置区域进行过滤,格式为:net [网络位置区域]要捕获网络位置区域为192.168.0.0/24的网络发送和接收的数据包,可以使用如下过滤条件:tcpdump net 192.168.0.0/243. 根据端口进行过滤可以使用端口号进行过滤,格式为:port [端口号]要捕获目标端口为80的数据包,可以使用如下过滤条件:tcpdump port 804. 组合使用过滤条件可以组合使用主机、网络和端口的过滤条件,以满足更加复杂的网络分析需求。
要捕获主机IP为192.168.0.1,访问目标端口为80的数据包,可以使用如下过滤条件:tcpdump host 192.168.0.1 and port 80三、实际应用示例1. 捕获特定主机的数据包假设需要捕获IP位置区域为192.168.0.1的主机发送和接收的数据包,可以使用如下命令:tcpdump host 192.168.0.12. 捕获特定网络的数据包假设需要捕获网络位置区域为192.168.0.0/24的网络发送和接收的数据包,可以使用如下命令:tcpdump net 192.168.0.0/243. 捕获特定端口的数据包假设需要捕获目标端口为80的数据包,可以使用如下命令:tcpdump port 804. 组合使用过滤条件假设需要捕获主机IP为192.168.0.1,访问目标端口为80的数据包,可以使用如下命令:tcpdump host 192.168.0.1 and port 80通过以上实际应用示例,可以更加直观地理解TCPDump filter语法的具体使用方法。
tcpdump 命令参数TCPDump是一款非常有用的网络工具,可以通过捕获网络流量来分析网络包。
它能够抓取进入或离开网络接口的数据包,并将其显示在控制台上。
该工具可以在多种操作系统上运行,例如Linux、Unix 和MacOS。
在使用这个工具时,需要掌握TCPDump命令参数,这样才能更好地理解工具的使用方法。
下面是TCPDump命令参数的详细介绍:1. -i这个参数用于指定使用的网络接口。
例如,如果要监听eth0接口上的流量,可以使用以下命令: tcpdump -i eth0。
如果不指定这个参数,TCPDump将默认使用系统上的第一个网络接口。
2. -n该参数会将DNS反解析关闭。
在数据包分析过程中,将会显示IP 地址而不是主机名。
3. -c使用该参数后,TCPDump将在抓取指定数目的包后停止。
例如,如果您想抓取前10个包,可以使用以下命令: tcpdump -c 10。
4. -q该参数将输出信息显示在一行中,而不是多行。
这将减少输出的数量和复杂度。
5. -A该参数可以让TCPDump以ASCII格式打印数据包的内容。
这对于跟踪邮件、HTTP请求和其他应用程序有用。
6. -X该参数可以让TCPDump以十六进制格式打印数据包的内容。
这对于跟踪二进制协议非常有用。
7. -s该参数用于指定要捕获的数据包的大小。
对于大量的网络流量,可以使用较小的捕获包大小,以减少输出的数量和复杂度。
例如,如果将捕获包限制为100字节,可以使用以下命令: tcpdump -s 100。
8. -w该参数将输出数据包到一个文件中,而不是输出到控制台。
这个文件可以在其他地方进行分析。
例如,如果您想在文件中保存捕获的流量,可以使用以下命令:tcpdump -w packets.pcap。
以上就是TCPDump命令参数的介绍,通过学习这些参数,我们可以更好地使用TCPDump这个工具,帮助我们分析网络流量,排查网络问题。
tcpdump过滤规则Tcpdump是一个网络抓包工具,它能够监视和分析网络上的数据流量。
为了提高效率,Tcpdump提供了一种过滤规则,可以指定仅捕获用户感兴趣的数据包。
本文将详细介绍Tcpdump过滤规则的使用方法,并提供一些例子来帮助读者更好地理解。
第一步:了解基本过滤规则Tcpdump的过滤规则基于Berkley Packet Filter (BPF)语法,并支持多种条件和操作符。
要使用Tcpdump的过滤规则,我们首先需要了解一些基本的过滤规则语法:1. 主机过滤规则a. host <ip_address>: 指定IP地址作为源地址或目的地址来过滤数据包。
b. src <ip_address>: 指定IP地址作为源地址来过滤数据包。
c. dst <ip_address>: 指定IP地址作为目的地址来过滤数据包。
2. 端口过滤规则a. port <port_number>: 指定端口号来过滤数据包。
b. src port <port_number>: 指定源端口号来过滤数据包。
c. dst port <port_number>: 指定目的端口号来过滤数据包。
3. 协议过滤规则a. tcp: 只捕获TCP数据包。
b. udp: 只捕获UDP数据包。
c. icmp: 只捕获ICMP数据包。
第二步:应用过滤规则现在我们已经了解了Tcpdump的基本过滤规则,让我们深入了解如何应用这些规则来捕获特定的数据包。
1. 捕获某个主机的所有流量要捕获某个主机的所有流量,我们可以使用主机过滤规则。
例如,要捕获IP地址为192.168.0.1的主机的所有流量,我们可以使用以下命令:tcpdump host 192.168.0.12. 捕获特定端口的数据包要捕获特定端口的数据包,我们可以使用端口过滤规则。
例如,要捕获目的端口号为80的所有数据包,我们可以使用以下命令:tcpdump dst port 803. 捕获特定协议的数据包要捕获特定协议的数据包,我们可以使用协议过滤规则。
使用tcpdump命令捕获和分析网络数据包在网络中,数据包是网络通信的基本单位。
了解和分析网络数据包的内容和结构,对于网络管理员和安全专家来说是非常重要的。
tcpdump是一款功能强大的网络数据包分析工具,它能够捕获网络数据包并提供详细的分析信息。
本文将介绍如何使用tcpdump命令捕获和分析网络数据包。
一、安装tcpdump在开始使用tcpdump之前,首先需要在你的计算机上安装tcpdump。
tcpdump在大多数Linux和UNIX系统中都是默认安装的,可以使用以下命令来检查是否已经安装了tcpdump:```tcpdump -v```如果已经安装,则会显示tcpdump的版本信息;如果未安装,则需要使用以下命令来安装tcpdump:```sudo apt-get install tcpdump```二、捕获网络数据包使用tcpdump捕获网络数据包非常简单,只需在终端中输入以下命令:```sudo tcpdump```该命令将会开始捕获所有经过计算机网络接口的数据包。
然而,这样会产生大量的输出信息,不便于分析。
为了提高分析效率,可以使用一些选项来限制捕获的数据包范围。
1. 指定网络接口如果你有多个网络接口,可以使用-i选项指定要捕获的网络接口。
例如,要捕获eth0接口的数据包,可以使用以下命令:```sudo tcpdump -i eth0```2. 指定捕获数量使用-c选项可以指定要捕获的数据包数量。
例如,要只捕获10个数据包,可以使用以下命令:```sudo tcpdump -c 10```3. 指定捕获过滤器可以使用过滤器来指定要捕获的数据包类型。
例如,要只捕获HTTP协议的数据包,可以使用以下命令:```sudo tcpdump port 80```以上命令将只捕获目标端口为80的数据包。
三、分析网络数据包捕获到网络数据包后,可以使用tcpdump提供的一些选项来进行数据包分析。
tcpdump的使用tcpdump采用命令行方式,它的命令格式为:tcpdump [ -a d e f l n N O p q S t v x][ -c 数量 ][ -F 文件名 ][ -i 网络接口 ][ -r 文件名][ -s snaplen ][ -T 类型 ][ -w 文件名 ][表达式 ]描述(DESCRIPTION)Tcpdump打印出在某个网络界面上,匹配布尔表达式expression的报头.对于SunOS的nit或bpf界面:要运行tcpdump,你必须有/dev/nit或/dev/bpf*的读访问权限.对于Solaris的dlpi:你必须有网络仿真设备(networkpseudodevice),如/dev/le的读访问权限.对于HP-UX的dlpi:你必须是root,或者把它安装成root的设置uid程序.对于IRIX的snoop:你必须是root,或者把它安装成root的设置uid程序.对于Linux:你必须是root,或者把它安装成root的设置uid程序.对于Ultrix和DigitalUNIX:一旦超级用户使用pfconfig(8)开放了promiscuous操作模式(promiscuous-mode),任何用户都可以运行tcpdump.对于BSD:你必须有/dev/bpf*的读访问权限.1. tcpdump的选项介绍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。
服务器抓包命令:tcpdump详解简介:tcpdump,就是:dump the traffic on a network,根据使⽤者的定义对⽹络上的数据包进⾏截获的包分析⼯具。
⼀个No-GUI的抓包分析⼯具。
tcpdump,可以将⽹络中传送的数据包的“头”完全截获下来提供分析。
它⽀持针对⽹络层、协议、主机、⽹络或端⼝的过滤,并提供and、or、not等逻辑语句来帮助你去掉⽆⽤的信息。
Linux已经⾃动安装,可直接使⽤。
概要:tcpdump采⽤命令⾏⽅式,它的命令格式为:tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ][ -c count ] [ -C file_size ][ -E spi@ipaddr algo:secret,... ][ -F file ] [ -G rotate_seconds ] [ -i interface ][ --immediate-mode ] [ -j tstamp_type ] [ -m module ][ -M secret ] [ --number ] [ --print ] [ -Q in|out|inout ][ -r file ] [ -s snaplen ] [ -T type ] [ --version ][ -V file ] [ -w file ] [ -W filecount ] [ -y datalinktype ][ -z postrotate-command ] [ -Z user ][ --time-stamp-precision=tstamp_precision ][ expression ]tcpdump [ -AdDeflLnNOpqRStuUvxX ] [ -c count ][ -C file_size ] [ -F file ][ -i interface ] [ -m module ] [ -M secret ][ -r file ] [ -s snaplen ] [ -T type ] [ -w file ][ -W filecount ][ -E spi@ipaddr algo:secret,... ][ -y datalinktype ] [ -Z user ][ expression ]-A 以ASCII码⽅式显⽰每⼀个数据包(不会显⽰数据包中链路层头部信息). 在抓取包含⽹页数据的数据包时, 可⽅便查看数据(nt: 即Handy for capturing web pages).-b 使⽤ASDOT表⽰法在BGP数据包中打印AS号,⽽不是ASPLAIN表⽰法-B buffer_size--buffer-size=buffer_size将操作系统捕获缓冲区⼤⼩设置为buffer_size,单位为KiB(1024字节)-c counttcpdump将在接受到count个数据包后退出.-C file-size (nt: 此选项⽤于配合-w file 选项使⽤)该选项使得tcpdump 在把原始数据包直接保存到⽂件中之前, 检查此⽂件⼤⼩是否超过file-size. 如果超过了, 将关闭此⽂件,另创⼀个⽂件继续⽤于原始数据包的记录. 新创建的⽂件名与-w 选项指定的⽂件名⼀致, 但⽂件名后多了⼀个数字.该数字会-d 以容易阅读的形式,在标准输出上打印出编排过的包匹配码, 随后tcpdump停⽌.(nt | rt: human readable, 容易阅读的,通常是指以ascii码来打印⼀些信息. compiled, 编排过的. packet-matching code, 包匹配码,含义未知, 需补充)-dd 以C语⾔的形式打印出包匹配码.-ddd 以⼗进制数的形式打印出包匹配码(会在包匹配码之前有⼀个附加的'count'前缀).-D 打印系统中所有tcpdump可以在其上进⾏抓包的⽹络接⼝. 每⼀个接⼝会打印出数字编号, 相应的接⼝名字, 以及可能的⼀个⽹络接⼝描述. 其中⽹络接⼝名字和数字编号可以⽤在tcpdump 的-i flag 选项(nt: 把名字或数字代替flag), 来指定要在其上抓此选项在不⽀持接⼝列表命令的系统上很有⽤(nt: ⽐如, Windows 系统, 或缺乏 ifconfig -a 的UNIX系统); 接⼝的数字编号在windows 2000 或其后的系统中很有⽤, 因为这些系统上的接⼝名字⽐较复杂, ⽽不易使⽤.如果tcpdump编译时所依赖的libpcap库太⽼,-D 选项不会被⽀持, 因为其中缺乏 pcap_findalldevs()函数.-e 每⾏的打印输出中将包括数据包的数据链路层头部信息-E spi@ipaddr algo:secret,...可通过spi@ipaddr algo:secret 来解密IPsec ESP包(nt | rt:IPsec Encapsulating Security Payload,IPsec 封装安全负载, IPsec可理解为, ⼀整套对ip数据包的加密协议, ESP 为整个IP 数据包或其中上层协议部分被加密后的数据,前者的⼯作模式称为需要注意的是, 在终端启动tcpdump 时, 可以为IPv4 ESP packets 设置密钥(secret).可⽤于加密的算法包括des-cbc, 3des-cbc, blowfish-cbc, rc3-cbc, cast128-cbc, 或者没有(none).默认的是des-cbc(nt: des, Data Encryption Standard, 数据加密标准, 加密算法未知, 另需补充).secret 为⽤于ESP 的密钥, 使⽤ASCII 字符串⽅式表达该选项中ESP 的定义遵循RFC2406, ⽽不是 RFC1827. 并且, 此选项只是⽤来调试的, 不推荐以真实密钥(secret)来使⽤该选项, 因为这样不安全: 在命令⾏中输⼊的secret 可以被其他⼈通过ps 等命令查看到.除了以上的语法格式(nt: 指spi@ipaddr algo:secret), 还可以在后⾯添加⼀个语法输⼊⽂件名字供tcpdump 使⽤(nt:即把spi@ipaddr algo:secret,... 中...换成⼀个语法⽂件名). 此⽂件在接受到第⼀个ESP 包时会打开此⽂件, 所以最好此时把赋予tcp -f 显⽰外部的IPv4 地址时(nt: foreign IPv4 addresses, 可理解为, ⾮本机ip地址), 采⽤数字⽅式⽽不是名字.(此选项是⽤来对付Sun公司的NIS服务器的缺陷(nt: NIS, ⽹络信息服务, tcpdump 显⽰外部地址的名字时会⽤到她提供的名称服务): 此NIS服务由于对外部(foreign)IPv4地址的测试需要⽤到本地⽹络接⼝(nt: tcpdump 抓包时⽤到的接⼝)及其IPv4 地址和⽹络掩码. 如果此地址或⽹络掩码不可⽤, 或者此接⼝根本就没有设置相应⽹络地址和⽹络掩码(nt: linux 下的 'any' ⽹络接⼝就不需要设置地-F file使⽤file ⽂件作为过滤条件表达式的输⼊, 此时命令⾏上的输⼊将被忽略.-i interface指定tcpdump 需要监听的接⼝. 如果没有指定, tcpdump 会从系统接⼝列表中搜寻编号最⼩的已配置好的接⼝(不包括 loopback 接⼝).⼀但找到第⼀个符合条件的接⼝, 搜寻马上结束.在采⽤2.2版本或之后版本内核的Linux 操作系统上, 'any' 这个虚拟⽹络接⼝可被⽤来接收所有⽹络接⼝上的数据包(nt: 这会包括⽬的是该⽹络接⼝的, 也包括⽬的不是该⽹络接⼝的). 需要注意的是如果真实⽹络接⼝不能⼯作在'混杂'模式(promiscuou 如果 -D 标志被指定, tcpdump会打印系统中的接⼝编号,⽽该编号就可⽤于此处的interface 参数.-l 对标准输出进⾏⾏缓冲(nt: 使标准输出设备遇到⼀个换⾏符就马上把这⾏的内容打印出来).在需要同时观察抓包打印以及保存抓包记录的时候很有⽤. ⽐如, 可通过以下命令组合来达到此⽬的:``tcpdump -l | tee dat'' 或者 ``tcpdump -l > dat & tail -f dat''.(nt: 前者使⽤tee来把tcpdump 的输出同时放到⽂件dat和标准输出中, ⽽后者通过重定向操作'>', 把tcpdump的输出放到dat ⽂件中, 同时通过tail把dat⽂件中的内容放到标准输出中) -L 列出指定⽹络接⼝所⽀持的数据链路层的类型后退出.(nt: 指定接⼝通过-i 来指定)-m module通过module 指定的file 装载SMI MIB 模块(nt: SMI,Structure of Management Information, 管理信息结构MIB, Management Information Base, 管理信息库. 可理解为, 这两者⽤于SNMP(Simple Network Management Protoco)协议数据包的抓取. 具此选项可多次使⽤, 从⽽为tcpdump 装载不同的MIB 模块.-M secret 如果TCP 数据包(TCP segments)有TCP-MD5选项(在RFC 2385有相关描述), 则为其摘要的验证指定⼀个公共的密钥secret.-n 不对地址(⽐如, 主机地址, 端⼝号)进⾏数字表⽰到名字表⽰的转换.-N 不打印出host 的域名部分. ⽐如, 如果设置了此选现, tcpdump 将会打印'nic' ⽽不是 ''.-O 不启⽤进⾏包匹配时所⽤的优化代码. 当怀疑某些bug是由优化代码引起的, 此选项将很有⽤.-p ⼀般情况下, 把⽹络接⼝设置为⾮'混杂'模式. 但必须注意 , 在特殊情况下此⽹络接⼝还是会以'混杂'模式来⼯作;从⽽, '-p' 的设与不设, 不能当做以下选现的代名词:'ether host {local-hw-add}' 或 'ether broadcast'(nt: 前者表⽰只匹配以太⽹地址为ho -q 快速(也许⽤'安静'更好?)打印输出. 即打印很少的协议相关信息, 从⽽输出⾏都⽐较简短.-R 设定tcpdump 对 ESP/AH 数据包的解析按照 RFC1825⽽不是RFC1829(nt: AH, 认证头, ESP,安全负载封装, 这两者会⽤在IP包的安全传输机制中). 如果此选项被设置, tcpdump 将不会打印出'禁⽌中继'域(nt: relay prevention field). 另外,由于ES-r file从⽂件file 中读取包数据. 如果file 字段为 '-' 符号, 则tcpdump 会从标准输⼊中读取包数据.-S 打印TCP 数据包的顺序号时, 使⽤绝对的顺序号, ⽽不是相对的顺序号.(nt: 相对顺序号可理解为, 相对第⼀个TCP 包顺序号的差距,⽐如, 接受⽅收到第⼀个数据包的绝对顺序号为232323, 对于后来接收到的第2个,第3个数据包, tcpdump会打印其序-s snaplen设置tcpdump的数据包抓取长度为snaplen, 如果不设置默认将会是68字节(⽽⽀持⽹络接⼝分接头(nt: NIT, 上⽂已有描述,可搜索'⽹络接⼝分接头'关键字找到那⾥)的SunOS系列操作系统中默认的也是最⼩值是96).68字节对于IP, ICMP(nt: Internet C -T type强制tcpdump按type指定的协议所描述的包结构来分析收到的数据包. ⽬前已知的type 可取的协议为:aodv (Ad-hoc On-demand Distance Vector protocol, 按需距离向量路由协议, 在Ad hoc(点对点模式)⽹络中使⽤),cnfp (Cisco NetFlow protocol), rpc(Remote Procedure Call), rtp (Real-Time Applications protocol),rtcp (Real-Time Applications con-trol protocol), snmp (Simple Network Management Protocol),tftp (Trivial File Transfer Protocol, 碎⽂件协议), vat (Visual Audio Tool, 可⽤于在internet 上进⾏电视电话会议的应⽤层协议), 以及wb (distributed White Board, 可⽤于⽹络会议的应⽤层协议).-t 在每⾏输出中不打印时间戳-tt 不对每⾏输出的时间进⾏格式处理(nt: 这种格式⼀眼可能看不出其含义, 如时间戳打印成1261798315)-ttt tcpdump 输出时, 每两⾏打印之间会延迟⼀个段时间(以毫秒为单位)-tttt 在每⾏打印的时间戳之前添加⽇期的打印-u 打印出未加密的NFS 句柄(nt: handle可理解为NFS 中使⽤的⽂件句柄, 这将包括⽂件夹和⽂件夹中的⽂件)-U 使得当tcpdump在使⽤-w 选项时, 其⽂件写⼊与包的保存同步.(nt: 即, 当每个数据包被保存时, 它将及时被写⼊⽂件中,⽽不是等⽂件的输出缓冲已满时才真正写⼊此⽂件)-U 标志在⽼版本的libcap库(nt: tcpdump 所依赖的报⽂捕获库)上不起作⽤, 因为其中缺乏pcap_cump_flush()函数.-v 当分析和打印的时候, 产⽣详细的输出. ⽐如, 包的⽣存时间, 标识, 总长度以及IP包的⼀些选项. 这也会打开⼀些附加的包完整性检测, ⽐如对IP或ICMP包头部的校验和.-vv 产⽣⽐-v更详细的输出. ⽐如, NFS回应包中的附加域将会被打印, SMB数据包也会被完全解码.-vvv 产⽣⽐-vv更详细的输出. ⽐如, telent 时所使⽤的SB, SE 选项将会被打印, 如果telnet同时使⽤的是图形界⾯,其相应的图形选项将会以16进制的⽅式打印出来(nt: telnet 的SB,SE选项含义未知, 另需补充).-w 把包数据直接写⼊⽂件⽽不进⾏分析和打印输出. 这些包数据可在随后通过-r 选项来重新读⼊并进⾏分析和打印.-W filecount此选项与-C 选项配合使⽤, 这将限制可打开的⽂件数⽬, 并且当⽂件数据超过这⾥设置的限制时, 依次循环替代之前的⽂件, 这相当于⼀个拥有filecount 个⽂件的⽂件缓冲池. 同时, 该选项会使得每个⽂件名的开头会出现⾜够多并⽤来占位的0, 这可-x 当分析和打印时, tcpdump 会打印每个包的头部数据, 同时会以16进制打印出每个包的数据(但不包括连接层的头部).总共打印的数据⼤⼩不会超过整个数据包的⼤⼩与snaplen 中的最⼩值. 必须要注意的是, 如果⾼层协议数据没有snaplen 这么长,并-xx tcpdump 会打印每个包的头部数据, 同时会以16进制打印出每个包的数据, 其中包括数据链路层的头部.-X 当分析和打印时, tcpdump 会打印每个包的头部数据, 同时会以16进制和ASCII码形式打印出每个包的数据(但不包括连接层的头部).这对于分析⼀些新协议的数据包很⽅便.-XX 当分析和打印时, tcpdump 会打印每个包的头部数据, 同时会以16进制和ASCII码形式打印出每个包的数据, 其中包括数据链路层的头部.这对于分析⼀些新协议的数据包很⽅便.-y datalinktype设置tcpdump 只捕获数据链路层协议类型是datalinktype的数据包-Z user使tcpdump 放弃⾃⼰的超级权限(如果以root⽤户启动tcpdump, tcpdump将会有超级⽤户权限), 并把当前tcpdump的⽤户ID设置为user, 组ID设置为user⾸要所属组的ID(nt: tcpdump 此处可理解为tcpdump 运⾏之后对应的进程)此选项也可在编译的时候被设置为默认打开.(nt: 此时user 的取值未知, 需补充)命令实例:⼀、默认启动tcpdump:直接启动tcpdump将监视第⼀个⽹络接⼝上所有流过的数据包。
tcpdump连续抓包脚本(可以⾃动将dump分开存储)tcpdump是Linux下最常⽤的抓包⼯具了。
不过往往抓着抓着就忘了时间,导致整个dump⽂件有⼏GB⼤,根本⽆法⽤软件分析。
当然可以⽤⼯具分割dump⽂件,不过那⼜要耗⼀番功付。
tcpdump⾃带的-C参数是可以抓到⼀定数据包后停⽌抓包,不过怎么⽤怎么不顺⼿,于是⾃⼰写了个抓包脚本。
Shell⽤的不熟,只能写个最简单的。
原理是外⾯套⼀个循环,利⽤⾃带的-C参数,将⼀定数量数据包存成⼀个⽂件,然后给加个后缀_0 _1 ...看代码:#!/bin/bashexport TcpDump=tcpdumpexport SliPackeLen=68export SliptCapPacket=500000if [ $# -ne 2 ] && [ $# -ne 3 ]thenecho "Usage: $0 <file> <CapCount> <expression>"elsefor ((iLoop=0; iLoop<$2; iLoop++))doecho ""echo "> Capture $1_$iLoop.dmp($SliptCapFile) in $(($iLoop+1))/$2 files"echo "$TcpDump -i eth1 -s $SliPackeLen -c $SliptCapPacket -w $1_$iLoop.dmp $3"$TcpDump -i eth1 -s $SliPackeLen -c $SliptCapPacket -w $1_$iLoop.dmp $3donefiecho ""export SliPackeLen=68 定义只抓数据包头的68字节export SliptCapPacket=500000 满50W数据包就新建⼀个⽂件给脚本个名字叫z-dump_68_50w.sh,以后就可以⽤:./z-dump_68_50w.sh test3 "host 192.168.0.12 and not udp"来抓包了。
TCPdump指定时间或者指定大小进行循环抓取报文
背景:我们用tcpdump工具循环抓取网卡上的报文,我们会遇到如下情况:
1. 抓取报文后隔指定的时间保存一次;
2. 抓取报文后达到指定的大小保存一次;
本文就这两种情况给出tcpdump的使用方法
1. 抓取报文后隔指定的时间保存一次:
tcpdump -i eth3 -s0 -G 60 -Z root -w %Y_%m%d_%H%M_% S.pcap
这里解释下-G选项后面接时间单位为秒本例中的时间为60秒
2. 抓取报文后达到指定的大小保存一次;
tcpdump -i eth3 -s0 -C 1 -Z root -w jiangsuyinhang.pcap
-i 指定网卡名称
这里的-s0 表示每个报文的大小是接收到的指定大小,如果没有这个选项,则超过比如1500字节的报文,就会被切除1500字节以外的部分
-C(小写)表示每当文件达到指定大小时进行重新保存一个新文件,单位是MB
-Z(小写) 表示下面的新文件也是用root权限来执行的,如果用-c 时必须配合-Z(大写z).
-w(小写) 后面跟具体的文件名称
注意:这个命令行保存下来的文件名是jiangsuyinhang.pcap jia ngsuyinhang.pcap0 jiangsuyinhang.pcap1……jiangsuyinhang.pc apN。
tcpdump抓包原理TCPDump是一款网络抓包工具,它可以让您在Linux、Solaris、AIX、HP-UX或者Mac OS X平台下进行网络监测和数据包分析,而且是在开源中,它可以让用户把数据包保存到文件,也可以在线上对数据进行分析。
TCPDump使用网络接口卡(NIC)读取网络上所有的数据包,它会根据用户所指定的参数来过滤掉不想要的数据包,并将想要的数据包分析和保存,从而便于用户进行网络监测和安全性鉴别。
TCPDump工具的原理是:首先,通过网络接口卡(NIC)以多种协议抓取网络数据包,然后将抓取到的数据包根据参数过滤,最后将想要的数据包保存到文件中,供用户进行后续的分析。
TCPDump原理:1、首先从网卡上抓取网络数据包,这里有两种方法,一种是在网络应用的只读模式下从网卡上读取数据,另一种是使用类似于libpcap的API来读取网络数据包。
2、将抓取到的数据包进行解析,根据用户所设定的过滤参数,筛选出用户期望的数据包。
3、将筛选出的数据包进行显示和保存,默认情况下,使用ASCII码显示数据包内容,当抓取到多个数据包后,将它们保存到文件中,供用户以后进行分析。
在这些步骤之间,还有一些关键的步骤,比如数据包的校验,无论是从网卡读取还是从文件中读取,都需要对数据包进行校验,以确保最终保存的数据是有效的。
TCPDump还有一些高级功能,例如支持多种协议(在TCPDump支持的网络层,比如IPv4,IPv6,ARP,RARP等),支持多种OS(支持Windows,Linux,Solaris等操作系统),支持深度分析(如带宽分析,延迟分析)。
总之,TCPDump能够帮助用户快速抓取和解析网络数据,为网络监测以及高级分析提供帮助,改善网络的安全性,辅助用户进行网络管理,实用非常大。
tcpdump 使用方法TCPDump是在Uni某和Linu某系统中用于抓取网络数据包的命令行工具。
它能够监听指定的网络接口,捕获网络流量并对数据包进行分析。
下面将详细介绍TCPDump的使用方法。
1.安装和权限:TCPDump是一款系统级工具,需要root权限才能运行。
因此,你需要以root用户身份安装和运行TCPDump。
在大多数Linu某发行版中,你可以使用以下命令安装:```sudo apt install tcpdump```如果你尚未获得root权限,可以使用sudo命令。
2.基本语法:TCPDump的基本语法如下:``````- options为可选参数,用于指定各种选项和过滤条件。
- e某pression为可选的过滤条件,用于指定捕获的数据包的特征。
3.监听网络接口:使用TCPDump抓取网络数据包前,你需要先选择要监听的网络接口。
通过以下命令可以列出所有可用的网络接口:``````然后,使用以下命令监听指定的网络接口:``````这里的<interface>为网络接口的名称,例如eth0或wlan0。
4.捕获网络流量:使用TCPDump抓取网络数据包非常简单。
只需运行以下命令即可将所有数据包输出到终端:``````这将捕获指定网络接口上的所有数据包,并以逐个数据包的形式输出到终端。
5.符合过滤条件的数据包:TCPDump支持多种过滤条件,以便只捕获符合特定条件的数据包。
例如,你可以使用以下命令仅捕获源或目标IP地址为192.168.1.100的数据包:```这将只输出符合过滤条件的数据包。
6.保存数据包到文件:TCPDump可以将捕获的数据包保存到文件中,以便以后分析。
使用以下命令可以将数据包保存到指定的文件中:``````这将将捕获的数据包写入指定文件中。
7.读取保存的数据包文件:可以使用TCPDump读取保存的数据包文件并分析其中的数据包。
使用以下命令从文件中读取数据包:``````这将逐个输出文件中的数据包。
tcpdump常用抓包命令TCPDump是一个基于命令行的抓包工具,它可以帮助网络管理员和安全专家捕获和分析数据包。
在网络故障排除、网络性能分析和网络安全检测等方面都有着广泛的应用。
本文将介绍TCPDump的常用抓包命令。
一、基本使用1.抓取指定网卡的数据包tcpdump -i eth0-i选项后面跟要抓取数据包的网卡名称,这里以eth0为例。
2.保存抓取到的数据包tcpdump -i eth0 -w capture.pcap-w选项后面跟要保存数据包的文件名,这里以capture.pcap为例。
3.读取已保存的数据包文件tcpdump -r capture.pcap-r选项后面跟要读取的数据包文件名,这里以capture.pcap为例。
二、过滤器使用1.根据IP地址过滤数据包tcpdump host 192.168.1.1host选项后面跟要过滤的IP地址,这里以192.168.1.1为例。
2.根据端口号过滤数据包tcpdump port 80port选项后面跟要过滤的端口号,这里以80为例。
3.根据协议类型过滤数据包tcpdump icmpicmp表示Internet控制报文协议。
4.组合使用多个条件进行过滤tcpdump host 192.168.1.1 and port 80and表示“与”的关系,即同时满足两个条件。
tcpdump host 192.168.1.1 or port 80or表示“或”的关系,即满足其中一个条件即可。
5.使用逻辑运算符进行复杂过滤tcpdump 'src net 192.168.1 and (dst net 10 or dst net 172)'这里使用了括号和逻辑运算符进行复杂的过滤,筛选出源IP地址为192.168.1开头,目的IP地址为10或172开头的数据包。
三、高级使用1.抓取指定数量的数据包tcpdump -c 100-c选项后面跟要抓取的数据包数量,这里以100为例。
1. TCPDump介绍TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。
它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
tcpdump就是一种免费的网络分析工具,尤其其提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。
tcpdump存在于基本的FreeBSD系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。
因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。
我们用尽量简单的话来定义tcpdump,就是:dump the traffice on anetwork.,根据使用者的定义对网络上的数据包进行截获的包分析工具。
作为互联网上经典的的系统管理员必备工具,tcpdump以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的东西之一。
tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。
tcpdump存在于基本的FreeBSD系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。
因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。
2. TcpDump的使用普通情况下,直接启动tcpdump将监视第一个网络界面上所有流过的数据包。
# tcpdumptcpdump: listening on fxp011:58:47.873028 bios-ns >bios-ns: udp 5011:58:47.974331 0:10:7b:8:3a:56 > 1:80:c2:0:0:0 802.1d ui/Clen=430000 0000 0080 0000 1007 cf08 0900 00000e80 0000 902b 4695 0980 8701 0014 0002000f 0000 902b 4695 0008 0011:58:48.373134 0:0:e8:5b:6d:85 > Broadcast sap e0 ui/C len=97ffff 0060 0004 ffff ffff ffff ffff ffff0452 ffff ffff 0000 e85b 6d85 4008 00020640 4d41 5354 4552 5f57 4542 0000 00000000 00tcpdump支持相当多的不同参数,如使用-i参数指定tcpdump监听的网络界面,这在计算机具有多个网络界面时非常有用,使用-c参数指定要监听的数据包数量,使用-w参数指定将监听到的数据包写入文件中保存,等等。
tcpdump使用手册TCPDump是一款功能强大的网络抓包工具,它可以捕获网络数据包并展示其详细信息,帮助我们分析网络通信问题。
本篇文章将为您介绍TCPDump的基本使用方法和一些常用参数。
一、安装TCPDumpTCPDump在大多数操作系统中都有相应的安装包,您可以根据自己的操作系统选择相应的安装方法。
以下是一些常见操作系统的安装命令:- 在Debian/Ubuntu中,您可以使用apt-get命令进行安装:```sudo apt-get install tcpdump```- 在CentOS/RHEL中,您可以使用yum命令进行安装:```sudo yum install tcpdump```- 在MacOS中,您可以使用Homebrew进行安装:```brew install tcpdump```- 在Windows中,您可以从TCPDump的官方网站下载并安装相应的可执行文件。
二、语法格式TCPDump的基本语法如下:```tcpdump [options] [expression]```其中,options为可选参数,expression为过滤表达式,用于指定捕获的数据包类型或范围。
三、基本使用方法1. 捕获所有数据包要捕获网络接口上的所有数据包,只需在命令行输入```tcpdump```即可。
TCPDump将实时显示捕获到的数据包的详细信息,包括源IP地址、目标IP地址、传输协议、数据包大小等。
2. 指定网络接口如果您的系统有多个网络接口,可以使用```-i```选项来指定要捕获数据包的接口。
例如,要捕获eth0接口的数据包,可以使用```tcpdump -i eth0```命令。
3. 保存数据包到文件使用```-w```选项可以将捕获到的数据包保存到文件中,以便以后进行分析。
例如,要将捕获到的数据包保存到名为capture.pcap的文件中,可以使用```tcpdump -w capture.pcap```命令。
Tcpdump是一款在Linux和UNIX系统中的数据包捕获工具,可以对网络数据进行实时分析和嗅探,提供对网络流量的详细解析。
以下是一些tcpdump的高级用法:
1. 过滤器:tcpdump支持使用过滤器来过滤要捕获的数据包。
可以使用不同的参数和语法来指定过滤条件,例如:
-i:指定要监听的网络接口。
-s:指定要截断的数据包大小。
host:指定要监听的主机名或IP地址。
port:指定要监听的端口号。
2. 统计:可以使用tcpdump来统计网络流量和数据包的数量。
可以使用“-c”参数来指定要捕获的数据包数量,也可以使用“-G”参数来指定捕获数据包的时间间隔。
3. 保存数据:可以使用“-w”参数将捕获的数据包保存到文件中,以便后续分析。
可以使用“-r”参数来读取保存的数据包文件,并对其进行分析。
4. 解析数据包:tcpdump可以解析各种网络协议的数据包,例如TCP、UDP、ICMP等。
可以使用“-A”参数来将数据包内容以ASCII码形式呈现。
5. 显示时间戳:可以使用“-tttt”参数显示数据包的时间戳。
6. 逆向DNS查询:可以使用“-n”参数来关闭tcpdump的DNS查询功能,同时使用“-nn”参数可以关闭逆向DNS查询。
7. 切换到root用户:tcpdump需要root权限才能正常运行。
可以使用“sudo”命令或者切换到root用户来运行tcpdump。
这些是tcpdump的一些高级用法,您可以尝试使用这些参数和语法来捕获和分析网络数据包。
但请注意,在使用tcpdump时应遵守相关的法律法规,并避免非法监听他人的网络流量。
以下将给出9个使用tcpdump的例子,以说明tcpdump的具体使用方法。
1.针对特定网口抓包(-i选项)当我们不加任何选项执行tcpdump时,tcpdump将抓取通过所有网口的包;使用-i选项,我们可以在某个指定的网口抓包:linux:/tmp/lx # tcpdump -i eth0tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on eth0, link-type EN10MB (Ethernet), capture size 96bytes 10:50:28.607429 IP 10.70.121.92.autodesk-lm > 10.71.171.140.ssh: .ack 116 win 6495110:50:28.607436 IP 10.71.171.140.ssh > 10.70.121.92.autodesk-lm: P 116:232(116) ack 1 win 1286410:50:30.384195 arp who-has 128.128.128.35 tell 128.128.128.35以上例子中,tcpdump抓取所有通过eth0的包。
2.抓取指定数目的包(-c选项)默认情况下tcpdump将一直抓包,直到按下”ctrl+c”中止,使用-c选项我们可以指定抓包的数量:linux:/tmp/lx # tcpdump -c 2 -i eth0tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on eth0, link-type EN10MB (Ethernet), capture size 96bytes 10:58:05.656104 IP 10.71.171.140.ssh > 10.70.121.92.autodesk-lm: P 1210443473:1210443589(116) ack 2583117929 win 1286410:58:05.657074 IP 10.70.121.92.autodesk-lm > 10.71.171.140.ssh: .ack 116 win 652112 packets captured6 packets received by filter0 packets dropped by kernel以上例子中,只针对eth0网口抓2个包。
3.将抓到包写入文件中(-w选项)使用-w选项,我们可将抓包记录到一个指定文件中,以供后续分析linux:/tmp/lx # tcpdump -w 20120606.pcap -i eth0tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size96 bytes75 packets captured150 packets received by filter0 packets dropped by kernel应当保存为.pcap后缀的文件,方便我们使用wireshark等工具读取分析。
4.读取tcpdump保存文件(-r选项)对于保存的抓包文件,我们可以使用-r选项进行读取:linux:/tmp/lx # tcpdump -r 20120606.pcapreading from file 20120606.pcap, link-type EN10MB (Ethernet)11:01:57.392907 IP 10.71.171.140.ssh > 10.70.121.92.autodesk-lm: P 1210446405:1210446457(52) ack 2583119957 win 1286411:01:57.392917 IP 10.71.171.140.ssh > 10.70.121.92.autodesk-lm: P 52:168(116) ack 1 win 1286411:01:57.393649 IP 10.70.121.92.autodesk-lm > 10.71.171.140.ssh: .ack 52 win 653275.抓包时不进行域名解析(-n选项)默认情况下,tcpdump抓包结果中将进行域名解析,显示的是域名地址而非ip地址,使用-n选项,可指定显示ip地址。
6.增加抓包时间戳(-tttt选项)使用-tttt选项,抓包结果中将包含抓包日期:linux:/tmp/lx # tcpdump -n -tttt -i eth02012-06-0611:14:59.539736 IP 10.71.171.140.22 > 10.70.121.95.1787: P 1:53(52) ack 100 win 75042012-06-0611:14:59.539754 IP 10.71.171.140.22 > 10.70.121.95.1787: P 53:105(52) ack 100 win 75042012-06-0611:14:59.539770 IP 10.71.171.140.22 > 10.70.121.95.1787: P 105:157(52) ack 100 win 75047.指定抓包的协议类型我们可以只抓某种协议的包,tcpdump支持指定以下协议:ip,ip6,arp,tcp,udp,wlan等。
以下例子只抓取arp协议的包:linux:/tmp/lx # tcpdump -i eth0 arptcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on eth0, link-type EN10MB (Ethernet), capture size 96bytes 11:22:26.948656 arp who-has 10.10.1.30 tell 10.10.1.2611:22:27.017406 arp who-has 10.10.1.30 tell 10.10.1.2611:22:27.078803 arp who-has 10.10.1.30 tell 10.10.1.268.指定抓包端口如果想要对某个特定的端口抓包,可以通过以下命令:linux:/tmp/lx # tcpdump -i eth0 port 22tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on eth0, link-type EN10MB (Ethernet), capture size 96bytes 11:41:04.387547 IP 10.70.121.92.autodesk-lm > 10.71.171.140.ssh: .ack 1216136825 win 6475111:41:04.387891 IP 10.71.171.140.ssh > 10.70.121.92.autodesk-lm: P 1:233(232) ack 0 win 1608011:41:04.398973 IP 10.70.121.92.autodesk-lm > 10.71.171.140.ssh: P 0:52(52) ack 233 win 64519下面的例子全是以抓取eth0接口为例,如果不加”-i eth0”是表示抓取所有的接口包括lo。
1、抓取包含10.10.10.122的数据包# tcpdump -i eth0 -vnn host 10.10.10.1222、抓取包含10.10.10.0/24网段的数据包# tcpdump -i eth0 -vnn net 10.10.10.0/243、抓取包含端口22的数据包# tcpdump -i eth0 -vnn port 224、抓取udp协议的数据包# tcpdump -i eth0 -vnn udp5、抓取icmp协议的数据包# tcpdump -i eth0 -vnn icmp6、抓取arp协议的数据包# tcpdump -i eth0 -vnn arp7、抓取ip协议的数据包# tcpdump -i eth0 -vnn ip8、抓取源ip是10.10.10.122数据包。
# tcpdump -i eth0 -vnn src host 10.10.10.1229、抓取目的ip是10.10.10.122数据包# tcpdump -i eth0 -vnn dst host 10.10.10.12210、抓取源端口是22的数据包# tcpdump -i eth0 -vnn src port 2211、抓取源ip是10.10.10.253且目的ip是22的数据包# tcpdump -i eth0 -vnn src host 10.10.10.253 and dst port 2212、抓取源ip是10.10.10.122或者包含端口是22的数据包# tcpdump -i eth0 -vnn src host 10.10.10.122 or port 2213、抓取源ip是10.10.10.122且端口不是22的数据包[root@ ftp]# tcpdump -i eth0 -vnn src host 10.10.10.122 and not port 2214、抓取源ip是10.10.10.2且目的端口是22,或源ip是10.10.10.65且目的端口是80的数据包。
# tcpdump -i eth0 -vnn \( src host 10.10.10.2 and dst port 22 \) or \( src host 10.10.10.65 and dst port 80 \)15、抓取源ip是10.10.10.59且目的端口是22,或源ip是10.10.10.68且目的端口是80的数据包。
[root@localhost ~]# tcpdump -i eth0 -vnn 'src host 10.10.10.59 and dst port 22' or ' src host 10.10.10.68 and dst port 80 '16、把抓取的数据包记录存到/tmp/fill文件中,当抓取100个数据包后就退出程序。