抓包的神!Tcpdump就得这样用
01 Tcpdump概述
Tcpdump是一个强大的命令行网络抓包工具,用于捕获和分析网络流量。
它可以在各种操作系统上运行,包括Linux、macOS和Windows(通过WinPcap或Npcap)。Tcpdump通过监听网络接口,捕获经过的数据包,并将其显示在终端或保存到文件中,供后续分析使用。
01 特点
- 轻量级:Tcpdump占用资源少,运行速度快,适合在资源受限的环境中使用。
- 高效:支持丰富的过滤表达式,可以精确捕获感兴趣的流量,减少不必要的数据。
- 跨平台:支持多种操作系统,包括Linux、macOS和Windows。
- 支持多种协议:Tcpdump支持多种网络协议,如TCP、UDP、ICMP、ARP等,可以捕获和分析各种类型的网络流量。
- 灵活的输出格式:提供多种输出格式选项,可以根据需要调整输出的详细程度。
02 Tcpdump的基本用法
01 安装
Tcpdump在大多数Linux发行版和macOS中都有预装,如果没有预装,可以通过包管理器轻松安装。
在Linux上安装:
- Debian/Ubuntu:
sudo apt-get install tcpdump
- CentOS/RHEL:
sudo yum install tcpdump
- Fedora:
sudo dnf install tcpdump
在macOS上安装:
- 使用Homebrew:
brew install tcpdump
在Windows上安装:
- 下载并安装WinPcap或Npcap,然后下载Tcpdump的Windows版本并解压到指定目录。
02 基本命令
抓取所有流量:
tcpdump
抓取指定接口的流量:
tcpdump -i eth0
抓取指定主机的流量:
tcpdump host 192.168.1.1
抓取指定端口的流量:
tcpdump port 80
抓取指定协议的流量:
tcpdump ip or tcp or udp
03 常用选项
-i:指定要监听的网络接口。
-n:不解析主机名和端口号,直接显示数字形式。
-nn:不解析主机名和端口号,也不解析协议名称。
-c:指定要捕获的数据包数量。
-w:将捕获的数据包保存到文件中,而不是显示在终端。
-r:从文件中读取捕获的数据包。
03 高级用法
01 过滤表达式
基本过滤表达式:
- 源地址:捕获来自特定主机的流量。
tcpdump src 192.168.1.1
- 目的地址:捕获发往特定主机的流量。
tcpdump dst 192.168.1.1
- 端口:捕获特定端口的流量。
tcpdump port 80
- 协议:捕获特定协议的流量。
tcpdump ip or tcp or udp
复合过滤表达式:
- 逻辑与:同时满足多个条件。
tcpdump src 192.168.1.1 and port 80
- 逻辑或:满足任意一个条件。
tcpdump src 192.168.1.1 or dst 192.168.1.2
- 逻辑非:排除特定条件。
tcpdump not port 22
02 保存和读取抓包文件
保存抓包文件:
tcpdump -i eth0 -w capture.pcap
读取抓包文件:
tcpdump -r capture.pcap
环形缓冲区:
- 使用环形缓冲区可以自动将数据包保存到多个文件中,每个文件达到指定大小后会自动切换到下一个文件。
tcpdump -i eth0 -C 10 -W 5 -w capture.pcap
- -C:每个文件的最大大小(单位为MB)。
- -W:文件的数量。
03 流量统计
统计流量:
捕获指定数量的数据包后停止。
tcpdump -c 100
统计特定协议的流量:
捕获并统计特定协议的数据包。
tcpdump -c 100 tcp
简化的输出:
使用-q选项可以减少输出的详细程度,使输出更加简洁。
tcpdump -q
版权声明:
作者:SE_YJ
链接:https://www.cnesa.cn/2535.html
来源:CNESA
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论