首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Linux抓包工具TCPdump,用过的网工,都说好用!

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

作者头像
ICT系统集成阿祥
发布2024-12-03 17:45:04
发布2024-12-03 17:45:04
1.2K0
举报
文章被收录于专栏:数通数通

背景

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

工具安装

一、tcpdump安装

1、云主机:CentOS 7.6

2、安装tcpdump

代码语言:javascript
复制
yum -y install tcpdump

3. 版本查看

代码语言:javascript
复制
tcpdump --h

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

二、tcpdump参数

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

参数

参数含义

-c

设置指定的数据包收取数;

-e

显示数据链路层信息;

-n

直接显示IP地址,不显示成域名;

-nn

显示查看 IP 和端口号,而且在抓取大量数据时非常高效

-s

tcpdump 默认只会截获前96字节的内容,要想截取指定字节的报文内容,可以使用-s number,number表示要截取的报文字节数,如果是 0 的话,表示截取报文全部内容;

-t‍

在输出的每一行不打印时间戳;

-v

输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;

-vv

输出详细的报文信息;

-w

将抓获数据写入指定文件;

-i

选择要捕获的接口,通常是以太网卡或无线网卡;

proto

过滤指定协议协议的数据报文;

port

过滤指定端口的数据包报文;

host

过滤包含指定主机ip的数据报文;

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

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

代码语言:javascript
复制
tcpdump

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

数据包格式为:

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

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

2. 指定抓包数量 -c

设定抓取6个数据包

代码语言:javascript
复制
tcpdump -c 6

信息展示如下:

3. 指定监听接口 -i

代码语言:javascript
复制
tcpdump -i eth0

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

-v:

-vv:

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

5.不显示时间

代码语言:javascript
复制
tcpdump -t

6.不显示域名-n -nn

-n:

-nn:

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

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

代码语言:javascript
复制
tcpdump -n icmp
tcpdump port 22
tcpdump host x.x.x.x 

协议:

端口:

主机ip:

四、 逻辑表达式

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

1. and(和)

代码语言:javascript
复制
tcpdump tcp and host 192.168.200.230
tcpdump tcp and src 192.168.200.230 and port 22 -nn

2. or(或)

代码语言:javascript
复制
tcpdump host 192.168.100.32 or 192.168.200.230

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

3. not(非)

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

代码语言:javascript
复制
tcpdump not tcp port 22

tcpdump ! tcp port 22

4、and和!的结合使用

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

代码语言:javascript
复制
tcpdump ip host 10.20.10.93 and ! 192.168.100.32
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-08-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ICT系统集成阿祥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • tcpdump作为Linux常用的抓包工具,原理是它使用 libpcap 库来抓取网络数据包,这个库几乎在所有的 Linux/Unix 中都有,抓取到的数据包用来提供网络分析。工具支持针对网络层、协议、主机、网络或端口的过滤,并可使用and、or、not等逻辑指令来帮助使用者筛掉无用信息。
  • 工具安装
  • 一、tcpdump安装
  • 二、tcpdump参数
    • 1.首先先理解tcpdump指令的输出:
    • 2. 指定抓包数量 -c
    • 3. 指定监听接口 -i
    • 4.打印更详细的数据包信息 -v和-vv
    • 5.不显示时间
    • 6.不显示域名-n -nn
    • 7.增加过滤信息proto、port、host
  • 四、 逻辑表达式
    • 1. and(和)
    • 2. or(或)
    • 3. not(非)
    • 4、and和!的结合使用
    • 想要获取主机10.20.10.93除了和主机192.168.100.32之外所有主机通信的ip包,使用命令:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档