抓包的神!Tcpdump就得这样用

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部


下午好,我的网工朋友。

在网络管理和故障排除中,抓包工具是不可或缺的工具之一。Tcpdump作为一个强大的命令行网络抓包工具,以其轻量级、高效和跨平台的特点,成为了许多网络工程师的首选。

无论是诊断网络问题、分析流量模式,还是检测安全威胁,Tcpdump都能提供丰富的功能和灵活的使用方式。

也因此,Tcpdump是抓包的“神”也是一点不为过。今天就来详细讲讲Tcpdump,看完又学到了。


今日文章阅读福利:《 tcpdump离线安装》

需要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


原创:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

原文链接:,转发请注明来源!