Linux抓包工具TCPdump,用过的网工,都说好用!

背景

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

工具安装

一、tcpdump安装

1、云主机:CentOS 7.6

2、安装tcpdump

yum -y install tcpdump

e0a372943ab8781cafbc088051c95747.png

3. 版本查看

tcpdump --h

1e664e8d45bcedbf20081d74a8622825.png

可以看出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命令

af419cd286bd9afbbad43b5b9eb3f172.png

数据包格式为:

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

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

2. 指定抓包数量 -c

设定抓取6个数据包

tcpdump -c 6

信息展示如下:

7b5fc8768103f05819b9aee67c7b74dc.png

3. 指定监听接口 -i

tcpdump -i eth0

7fbce31c0e23ee32dab4ecf186bfc7c0.png

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

-v:

24fc81b6c8fe7896b2b0aa838ce6b480.png

-vv:

f5e9aa9b937f89eef753291618429b1f.png

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

5.不显示时间

tcpdump -t

0c0262f2be35c5bc8338cb7c767708f7.png

6.不显示域名-n -nn

-n:

0cb0ed0bef14a5a138748a0a7162cfa1.png

-nn:

48171f7444cc1187618e04d6f1f1effc.png

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

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

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

协议:

19c3d911383cffd22a909805570f66ca.png

端口:

f3c59dd2f4cff2f0e661afe7c9f20c00.png

主机ip:

21ad3ed607b053eb15153754bb85e26d.png

四、 逻辑表达式

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

1. and(和)

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

21cc19f479dc91f8fa186ac6306dbf0a.png

cd384b014579e60b67be6b8112d51428.png

2. or(或)

tcpdump host 192.168.100.32 or 192.168.200.230

98bf46ec6d4838e1716feaa731a42688.png

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

3. not(非)

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

tcpdump not tcp port 22


tcpdump ! tcp port 22

43fd82672d32409e847fea70240c15e3.png

4、and和!的结合使用

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

tcpdump ip host 10.20.10.93 and ! 192.168.100.32

0e5d78937f65a6514c8369532a43cb57.png

不想错过文章内容?读完请点一下“在看88677b14af809e617fc215feef7b1780.gif,加个关注”,您的支持是我创作的动力

期待您的一键三连支持(点赞、在看、分享~)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ICT系统集成阿祥

感谢大佬!

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

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

打赏作者

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

抵扣说明:

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

余额充值