Linux抓包工具TCPdump

背景

tcpdump作为Linux常用的抓包工具,原理是它使用 libpcap 库来抓取网络数据包,这个库几乎在所有的 Linux/Unix 中都有,抓取到的数据包用来提供网络分析。工具支持针对网络层、协议、主机、网络或端口的过滤,并可使用and、or、not等逻辑指令来帮助使用者筛掉无用信息。

工具安装

一、tcpdump安装

1、云主机:CentOS 7.6

2、安装tcpdump

yum -y install tcpdump

图片

3. 版本查看

tcpdump --h

图片

可以看出tcpdump版本和libpcap库版本

二、tcpdump参数

该工具常用参数选项和作用:

参数参数含义
-c设置指定的数据包收取数;
-e显示数据链路层信息;
-n直接显示IP地址,不显示成域名;
-nn显示查看 IP 和端口号,而且在抓取大量数据时非常高效
-stcpdump 默认只会截获前96字节的内容,要想截取指定字节的报文内容,可以使用-s number,number表示要截取的报文字节数,如果是 0 的话,表示截取报文全部内容;
-t‍在输出的每一行不打印时间戳;
-v输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;
-vv输出详细的报文信息;
-w将抓获数据写入指定文件;
-i选择要捕获的接口,通常是以太网卡或无线网卡;
proto过滤指定协议协议的数据报文;
port过滤指定端口的数据包报文;
host过滤包含指定主机ip的数据报文;

三、命令选项操作演示及说明

1.首先先理解tcpdump指令的输出:

tcpdump

和普通指令终止的方式一样,Ctrl+C可终止执行tcpdump命令

图片

数据包格式为:

时间  源IP  端口/协议 > 目标IP  端口/协议  协议详细信息

PS:">"符号代表数据的方向

2. 指定抓包数量 -c

设定抓取6个数据包

tcpdump -c 6

信息展示如下:

图片

 

3. 指定监听接口 -i

tcpdump -i eth0

图片

4.打印更详细的数据包信息 -v和-vv

-v:

图片

-vv:

图片

可以看出-vv打印的信息更详细

5.不显示时间

tcpdump -t

图片

6.不显示域名-n -nn

-n:

图片

-nn:

图片

对比可以看出,-nn比-n显示的信息更详细,具体到ip和端口,更方便分析

7.增加过滤信息proto、port、host

tcpdump -n icmptcpdump port 22tcpdump host x.x.x.x 

协议:

图片

端口:

图片

主机ip:

图片

四、 逻辑表达式

逻辑表达式可以拼接出更复杂的过滤策略,更好的筛选数据包;

1. and(和)

tcpdump tcp and host 192.168.200.230tcpdump tcp and src 192.168.200.230 and port 22 -nn

图片

图片

2. or(或)

tcpdump host 192.168.100.32 or 192.168.200.230

图片

可看到两个ip的包都有抓到

3. not(非)

有时候为了不让ssh远程端口影响到主要数据包的收集,所以一般需要禁止ssh数据包的输出。会用到以下两个方式:

tcpdump not tcp port 22
tcpdump ! tcp port 22

图片

4、and和!的结合使用

想要获取主机10.20.10.93除了和主机192.168.100.32之外所有主机通信的ip包,使用命令:

tcpdump ip host 10.20.10.93 and ! 192.168.100.32

图片

  • 18
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

资料库01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值