linux工作利器之二,网络分析工具tcpdump

简单介绍

tcpdump是一个能够对网络上的数据包进行收集的网络分析工具,根据用户自定义条件截取数据包,具备灵活的策略,是系统管理员分析网络、排查问题的利器。tcpdump提供了源代码,有公开的接口,因此具备很强的可扩展性,它支持针对网络层、协议、主机、网络或端口的过滤,并且支持and、or、not等逻辑语句。普通用户无法执行tcpdump命令,只有具备root权限才能执行。

参数介绍

默认情况下启动tcpdump,将监听在第一个网络接口上所有流过的数据包

tcpdump支持很多参数,往往网络中流量很大,如果不加分辨收集所有的数据包,数据量太大,不容易发现需要的数据包,使用参数定义的过滤规则收集特定的数据包,缩小目标,便于更好的分析网络中存在的问题。

-i 指定网络接口
-w 将结果输出到文件中,通常文件以.pcap作为后缀,可以结合wirkshark分析数据
-n 不把网络地址换成名字(不进行域名解析,速度更快)
-nn 不进行端口名称的转换,直接以ip和端口显示
-v 输出一个稍微详细的信息(例如在ip包中可以包括ttl和服务类型的信息)
-vv 输出详细的报文信息
-c 在收到指定的包的数目后,tcpdump就会停止,默认tcpdump需要crtl+c结束
-C 后接file_size,指定-w写入文件的大小,如果超过了指定大小,则关闭当前文件,然后在打开一个新的文件, file_size 的单位是兆字节
-a 将网络地址和广播地址转变成名字
-A 以ASCII格式打印出所有分组,并将链路层头最小化,方便去收集web页面内容
-d 将匹配信息包的代码以人们能够理解的汇编格式给出
-dd 将匹配信息包的代码以c语言程序段的格式给出
-ddd 将匹配信息包的代码以十进制的形式给出
-D 打印出系统中所有可以用tcpdump分析的网络接口
-q 快速输出,只输出较少信息
-e 在输出行打印出数据链路层的头部信息
-f 将外部的Internet地址以数字的形式打印出来
-l 使标准输出变为缓冲行形式
-t 在输出的每一行不打印时间戳
-tt 在每一行中输出非格式化的时间戳
-ttt 输出本行和前面一行之间的时间差
-F 从指定的文件中读取表达式,忽略其它的表达式
-r 从指定的文件中读取包(这些包一般通过-w选项产生)
-w 直接将包写入文件中,并不分析和打印出来
-T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单网络管理协议)

tcpdump表达式

格式:
tcpdump [option] 协议 + 传输方向 + 类型 + 具体值
这是一个正则表达式,满足表达式的报文会被收集。
协议:主要包括ip、arp、rarp、tcp、udp、icmp、http,指定监听包的协议内容,如果没有指定,默认是监听所有协议的数据包
传输方向:主要包括src、dst、dst or src、dst and src,指定传输方向,源地址或目标地址,如果没有指定,默认是src or dst
类型:主要包括host、net、port、ip proto、protochain,指定收集的主机或网段,如果默认没有指定,默认是host
其他关键字:gateway, broadcast,less,greate;三种逻辑运算符,取非运算 ‘not ‘ ‘! ‘, 与运算‘and‘,‘&&‘,或运算 ‘or‘ ,‘││‘

使用实例

包含主机192.0.0.19的数据包

[[email protected] ~]# tcpdump -i eth0 -nnvv -c 5 host 192.0.0.19

包含192.0.0.0/24网段的数据包

[[email protected] ~]# tcpdump -i eth0 -c 1 net 192.0.0.0/24
[[email protected] ~]# tcpdump -i eth0 -c 1 net 192.0.0.0 mask 255.255.255.0

源ip是192.0.0.19的数据包和目标地址是192.0.0.19的数据包

[[email protected] ~]# tcpdump -i eth0  -c 4 src host 192.0.0.19
[[email protected] ~]# tcpdump -i eth0  -c 4 dst host 192.0.0.19

9092端口的数据包

[[email protected] ~]# tcpdump -i eth0 -nnvv -c 4 port 9092

ssh服务的数据包

[[email protected] ~]# tcpdump -i eth0 -nnvv -c 4 port ssh

源端口是9092的数据包,目标端口是9092的数据包

[[email protected] ~]# tcpdump -i eth0 -nnvv -c 3 src port 9092
[[email protected] ~]# tcpdump -i eth0 -nnvv -c 3 dst port 9092

tcp协议、udp协议、icmp协议的数据包

[[email protected] ~]# tcpdump -i eth0 -nnvv -c 3 tcp
[[email protected] ~]# tcpdump -i eth0 -nnvv -c 3 ip proto ‘\tcp‘
[[email protected] ~]# tcpdump -i eth0 -nnvv -c 3 udp
[[email protected] ~]# tcpdump -i eth0 -nnvv -c 3 ip proto ‘\udp‘
[[email protected] ~]# tcpdump -i eth0 -nnvv -c 3 icmp
[[email protected] ~]# tcpdump -i eth0 -nnvv -c 3 ip proto ‘\icmp‘

源ip是192.0.0.19且目标端口是9092的数据包,用and

[[email protected] ~]# tcpdump -i eth0 -nnvv -c 3 src 192.0.0.19 and dst port 9092

源ip是192.0.0.19或目标端口是9092的数据包,用or

[[email protected] ~]# tcpdump -i eth0 -nnvv -c 3 src 192.0.0.19 or dst port 9092

源ip是192.0.0.19且端口是9092,或源ip是192.0.0.20且目的端口不是80的数据包

[[email protected] ~]# tcpdump -i eth0 -nnvv -c 4 \(src host 192.0.0.19 and port 9092\) or \(src host 192.0.0.20 and not dst port 80\)

流经网卡eth0的1000个数据包保存在文件backup.cap中

[[email protected] ~]# tcpdump -i eth0 -nnvv -c 1000 -w backup.cap

从文件backup.cap中读取tcp协议的10个数据包

[[email protected] ~]# tcpdump -i eth0 -c 10 -r backup.cap tcp

数据包类型是多播且端口不是22且协议不是icmp的数据包

[[email protected] ~]# tcpdump -i eth0 -nnvv ether multicast and not port 22 and not icmp

协议是ospf的数据包

[[email protected] ~]# tcpdump -i eth0 -nnvv ip proto ospf

包长度大于50,小于100的数据包

[[email protected] ~]# tcpdump -i eth0 -nnvv -c 5 less 100 and greater 50

ip信息类型的数据包,ip信息类型协议可以是icmp、icmp6、igmp、igrp、pim、ah、esp、vrrp、udp、tcp

[[email protected] ~]# tcpdump -i eth0 -nnvv -c 3 ip proto ‘\tcp‘

ipv6信息类型的数据包

[[email protected] ~]# tcpdump -i eth0 -nnvv -c 3 ip6 proto ‘\tcp‘

ether信息类型的数据包,ether信息类型协议可以是ip、ip6、arp、rarp、atalk、aarp、decnet、sca、lat、mopdl、moprc、iso、stp、ipx或netbeui

[[email protected] ~]# tcpdump -i eth0 -nnvv -c 3 ether proto ‘\ip‘

以太网广播、多波数据包

[[email protected] ~]# tcpdump -i eth0 -nnvv ether broadcast
[[email protected] ~]# tcpdump -i eth0 -nnvv ether multicast

ipv4广播、多波数据包

[[email protected] ~]# tcpdump -i eth0 -nnvv ip broadcast
[[email protected] ~]# tcpdump -i eth0 -nnvv ip multicast

原文地址:https://blog.51cto.com/13053917/2430477

时间: 2024-10-14 16:48:43

linux工作利器之二,网络分析工具tcpdump的相关文章

linux 高性能读书笔记之小工具tcpdump

用途:抓取传输数据包 小技巧:在执行wget命令前,我们应该先删除ARP高速缓存中路由器对应的项,这样就可以观察到TCP/IP通信过程中ARP协议如何起作用. ARP:地址解码 使用示例: arp -d 192.168.1.1 tcpdump -s 2000 -i eth0 -ntX ' (src 192.168.1.108) or (dst 192.168.1.108) or (arp)' wget --header="Connection:close" http://www.bai

Linux菜鸟升级利器之ansible

一.absible是什么? ansible是一款简单的.开源的自动化管理工具.它通过Openssh工作,没有服务器:并且被管理的客户端上面并不需要安装什么客户端软件或启动什么守护进程,没有客户端:扩展模块可以使用任何语言编写:命令自动传输到管理机执行,并返回结果: 二.安装ansible 安装ansible需要使用Fedora的EPEL源,所以要先配置好yum的epel源,在yum源文件中添加: [base1] name=epel baseurl=http://dl.fedoraproject.

Linux抓包工具tcpdump详解

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

[转] Linux抓包工具tcpdump详解

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

[转帖]网络分析工具--【ping、tcpdump、netstat、lsof、ss】

网络分析工具--[ping.tcpdump.netstat.lsof.ss]原创小呀小二笙 发布于2019-01-01 15:32:19 阅读数 1314 收藏 https://blog.csdn.net/qq_38790716/article/details/85486681 看原文比较好 复制的话 图片没有过来. 展开 文章目录1. ping1.1 概述1.2 ping的使用1.3 ping常用参数2. tcpdump2.1 概述2.2 tcpdump使用3. netstat3.1 概述3.

调试利器之tcpdump详解

简介你执行 man tcpdump 命令,你会看到文档中对tcpdump的说明是“dump traffic on a network”.可见,tcpdump是一个根据使用者的定义对网络上的数据包进行截获的包分析工具.tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供and.or.not等逻辑语句来帮助你去掉无用的信息.tcpdump以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的工具之一.

Linux 抓包工具 tcpdump

1.概述 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具.?tcpdump可以将网络中传送的数据包的"头"完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供and.or.not等逻辑语句来帮助你去掉无用的信息. tcpdump是一个用于截取网络分组,并输出分组内容的工具,简单说就是数据包抓包工具.tcpdump凭借强大的功能和灵活的截取策略,使其成为Linu

Linux学习之CentOS(二)----远程登录管理工具SecureCRT的使用

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3919940.html 联系方式:[email protected] [正文] 虚拟机版本:VMware Workstation_10.0.3 Linux系统版本:CentOS_6.5(64位) 一.前言: 前几天做了一回小白,安装了上个月发布的最新版CentOS 7 ,发现在学习的时候有很多地方和

Linux学习总结(二十八) 数据同步工具 rsync

rsync是linux系统下的数据镜像备份工具.使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主机同步. rsync格式 rsync [OPTION] - SRC DEST rsync [OPTION] - SRC [[email protected]]host:DEST rsync [OPTION] - [[email protected]]host:SRC DEST 1 rsync常用选项 -a 包含-rtplgoD-r 同步目录时要加上,