linux之tcpdump抓包工具

tcpdump简介

  • linux作为网络服务器,特别事作为路由器和网关时,数据的采集和分析时不可少的。tcpdump时linux中强大的网络数据采集分析工具之一。
  • 用简单的话来定义tcpdump就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。
  • 作为互联网上的经典的系统管理员必备工具,tcpdump以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的工具之一。
  • tcpdump的总结输出格式为:系统时间 来源主机 端口 > 目标端口.端口 数据包参数

tcpdump的使用及命令格式

tcpdump采用命令行方式,它的命令格式为:

tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ]
[ -i 网络接口 ] [ -r 文件名] [ -s snaplen ]
[ -T 类型 ] [ -w 文件名 ] [表达式]

tcpdump的选项介绍

命令解释
-a将网络地址和广播地址转变成名字
-d将匹配信息包的代码以人们能够理解的汇编格式给出;
-dd将匹配信息包的代码以C语言程序段的格式给出;
-ddd将匹配信息包的代码以十进制的形式给出;
-q快速打印输出。即打印很少的协议相关信息,从而输出行都比较简短。
-X输出包的头部数据,会以16进制和ASCII两种方式同时输出。
-XX输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细。
-D列出可用于抓包的接口。将会列出接口的数值编号和接口名,它们都可以用于"-i"后。
-e在输出行打印出数据链路层的头部信息;
-f将外部的internet地址以数字的形式打印出来;
-l使标准输出变为缓冲行形式;
-n对地址以数字方式显式,否则显式为主机名,也就是说-n选项不做主机名解析;
-nn除了-n的作用外,还把端口显示为数值,否则显示端口服务名。
-t在输出的每一行不打印时间戳;
-v输出一个稍微详细的信息,例如在IP包中可以包括ttl和服务类型的信息;
-P指定要抓取的包是流入还是流出的包。可以给定的值为"in"、“out"和"inout”,默认为"inout"
-v当分析和打印的时候,产生详细的输出。
-vv输出详细的报文信息;
-vvv产生比-vv更详细的输出。
-c在收到指定的包的数目后,tcpdump就会停止;
-F从指定的文件中读取表达式,忽略其它的表达式;
-i指定监听的网络接口;
-r从指定的文件中读取包(这些包一般通过-w选项产生);
-w直接将包写入文件中,并不分析和打印出来;
-T将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单 网络管理协议)

表达式

  • 类型
host,net,port,portrange
例如:host 192.168.129.250,net 128.3,port 80,portrange 6000-6008
  • 目标
src,dst,src or dst,src and dst
  • 协议
tcp,udp,icmp,ip,ether,ip6,arp若不给协议,则默认匹配所有可能的类型
  • 表达式之间可以使用修饰符 “and / && / or || / not / ! “等进行连接组成复杂的表达式来完成更复杂的工作;
  • 使用”()“可以用来表示优先级的高低,但是()会被shell解释成其他意思,必要的时候需要使用(反斜杠来进行转义),需要的时候也可以用引号将其引起来:”()”

七层网络协议

从下往上依次是: 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

OSI层数作用协议
应用层文件传输,电子邮件,文件服务,虚拟终端http,ftp,DNS,SNMP,telnet,TFTP,SMTP
表示层数据格式化,定义数据格式及数据加密无协议
会话层解除或建立与其他接点的联系无协议
传输层提供端对端的接口TCP,UDP
网络层为数据包选择路由IP,icmp,RIP,OSPF,BGP
数据链路层传输有地址的帧,错误检测功能PPP,ARP,RARP等
物理层以二进制数据形式在物理媒体上传输数据ISO2110,802.3,IEEE802

TCP/UDP协议

  • TCP和UDP属于传输层的协议类型。
  • TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。
  • 通俗说,它是事先为所要发送的数据包开辟好通道,然后再进行数据的发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。
  • TCP一般用于对数据安全或数据完整性要求较高的应用;而UDP则是用于数据可靠性要求较低,数据传输快的应用。
  • TCP支持的协议有:telnet、FTP、SMTP等;UDP支持NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(域名解析)、TFTP(通用文件传输协议)等 TCP/IP协议与底层的物理和数据链路等无关

tcpdump抓包

列出可以抓包的网络接口

//tcpdump需要使用root用户的权限
[root@192 ~]# tcpdump -D
1.ens160 [Up, Running]
2.lo [Up, Running, Loopback]
3.any (Pseudo-device that captures on all interfaces) [Up, Running]
4.bluetooth-monitor (Bluetooth Linux Monitor) [none]
5.nflog (Linux netfilter log (NFLOG) interface) [none]
6.nfqueue (Linux netfilter queue (NFQUEUE) interface) [none]
7.usbmon0 (All USB buses) [none]
8.usbmon1 (USB bus number 1)
9.usbmon2 (USB bus number 2)

//监视指定网络接口的数据包
[root@192 ~]# tcpdump -i ens160

//监视指定主机的数据包
#host 后面可以接主机名或者IP地址,但是主机名为localhost不可以
[root@world ~]# tcpdump -i ens160 host world

//打印world和world1或world和world2之间通信的数据包
[root@world ~]# tcpdump -i ens160 host world and \(world1 or world2\)

//打印world与其他主机之间通信的IP数据包,但是不包括与world2之间的数据包
[root@world ~]# tcpdump -i ens160 host world and not world2

// 截获主机world发送的所有数据包
#src表示数据包来自的地方成为源
[root@world ~]# tcpdump -i ens160 src host world

// 监视所有发送到主机world1的数据包
#dst表示数据包去的目的地
[root@world ~]# tcpdump -i ens160 dst host world1

// 监视指定主机和端口的数据包
[root@world ~]# tcpdump -i ens160 port 3306 and host world1

// 监视指定网络的数据包
#表示的是本机与192.168网段间通信的数据包,-c 5 表示只抓取5个包
[root@world ~]# tcpdump -i ens160 -c 5 net 192.168

//抓取ping包
[root@world ~]# tcpdump -c 5 -nn -i ens160

// 抓取本机的80端口号
[root@world ~]# tcpdump -v -c 5 -nn -i ens160 tcp dst port 80

// 解析包数据
[root@world ~]# tcpdump -c 5 -q -XX -vvv -nn -i ens160 tcp dst port 3306

// 抓取指定端口范围的流量
[root@world ~]# tcpdump -ni ens160 portrange 80-10051

//抓取指定网段的流量
[root@world ~]# tcpdump -ni ens160 net 192.168.1.0/24

//抓取ens160网卡上所有的arp数据包
[root@world ~]# tcpdump -ni ens160 arp

//抓取指定客户端访问 ssh 的数据包
[root@world ~]# tcpdump -v -ni ens160 src 192.168.129.250 and dst port 22

//抓取从某个网段来,到某个网段去的流量
[root@world ~]# tcpdump -ni ens160 net 192.168.1.0/24 and dst net 100.0.0.0/8 or 172.16.0.0/16

//抓取来自某个主机,发往非 ssh 端口的流量
[root@world ~]# tcpdump -ni ens160 src 172.16.0.0 and not dst port 22
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值