Linux 下使用tcpdump进行网络分析

简介

tcpdump 是一个命令行数据包分析器,可实时捕获和检查网络流量。它通常用于网络故障排除、性能分析和安全监控。

安装

  • Debian/Ubuntu
shell 复制代码
sudo apt update && sudo apt install tcpdump -y
  • CentOS/RHEL
shell 复制代码
sudo yum install tcpdump -y
  • macOS
shell 复制代码
brew install tcpdump

基础语法

shell 复制代码
tcpdump [options] [filter]

示例用法

在默认接口上捕获数据包

实时捕获并显示网络数据包。

shell 复制代码
sudo tcpdump

列出可用网络接口

shell 复制代码
sudo tcpdump -D

输出示例

shell 复制代码
1. eth0
2. wlan0
3. lo

可以使用此列表中的接口名称来捕获特定接口上的数据包。

在特定接口上捕获数据包

shell 复制代码
sudo tcpdump -i eth0

限制捕获的数据包数量

仅捕获 10 个数据包然后停止

shell 复制代码
sudo tcpdump -c 10 -i eth0

将捕获的数据包保存到文件

shell 复制代码
sudo tcpdump -i eth0 -w capture.pcap

从文件读取数据包

shell 复制代码
sudo tcpdump -r capture.pcap

仅捕获特定协议

  • 仅 TCP 数据包
shell 复制代码
sudo tcpdump -i eth0 tcp
  • 仅 UDP 数据包
shell 复制代码
sudo tcpdump -i eth0 udp
  • 仅 ICMP(ping)数据包
shell 复制代码
sudo tcpdump -i eth0 icmp

捕获特定主机的数据包

捕获来自/到 192.168.1.1 的流量

shell 复制代码
sudo tcpdump -i eth0 host 192.168.1.1

捕获特定端口上的数据包

  • 捕获 HTTP 流量(端口 80)
shell 复制代码
sudo tcpdump -i eth0 port 80
  • 捕获 SSH 流量(端口 22)
shell 复制代码
sudo tcpdump -i eth0 port 22

从特定源或目标捕获数据包

  • 仅捕获来自源 192.168.1.100 的数据包
shell 复制代码
sudo tcpdump -i eth0 src 192.168.1.100
  • 仅捕获目的地址为 192.168.1.100 的数据包
shell 复制代码
sudo tcpdump -i eth0 dst 192.168.1.100

组合多个过滤器

在端口 443 (HTTPS) 上捕获往返于 192.168.1.100 的 TCP 流量

shell 复制代码
sudo tcpdump -i eth0 tcp and host 192.168.1.100 and port 443

以十六进制和 ASCII 格式显示数据包

shell 复制代码
sudo tcpdump -X -i eth0

无需解析主机名即可捕获数据包

-n 选项可防止 DNS 查找,从而提高性能

shell 复制代码
sudo tcpdump -n -i eth0

仅捕获数据包头(无有效负载)

-s 0 标志捕获完整的数据包而不是截断

shell 复制代码
sudo tcpdump -s 0 -i eth0

仅捕获 HTTP 流量并显示内容

-A 选项以 ASCII 格式打印数据包内容

shell 复制代码
sudo tcpdump -A -i eth0 port 80
相关推荐
朱小弟cs61 小时前
Orange的运维学习日记--41.Ansible基础入门
linux·运维·学习·ci/cd·自动化·ansible·devops
CIb0la2 小时前
kali linux 2025.2安装WPS并设置无报错的详细步骤
linux·运维·wps
醉方休3 小时前
Node.js 精选:50 款文件处理与开发环境工具库
linux·运维·node.js
代码老y4 小时前
从裸机到云原生:Linux 操作系统实战进阶的“四维跃迁”
linux·运维·云原生
CMCST4 小时前
CentOS 7.9 升级 GLibc 2.34
linux·运维·centos
xiep14383335105 小时前
Rocky Linux 10 部署 Kafka 集群
linux·运维·kafka
笨鸟要努力8 小时前
Ubuntu 全盘备份
linux·运维·ubuntu
ChironW8 小时前
Ubuntu 22.04 离线环境下完整安装 Anaconda、CUDA 12.1、NVIDIA 驱动及 cuDNN 8.9.3 教程
linux·运维·人工智能·深度学习·yolo·ubuntu
轻松Ai享生活9 小时前
linux 日志详解
linux
小白的代码日记10 小时前
Linux常用指令
linux·运维·服务器