章工运维 章工运维
首页
  • linux
  • windows
  • 中间件
  • 监控
  • 网络
  • 存储
  • 安全
  • 防火墙
  • 数据库
  • 系统
  • docker
  • 运维工具
  • other
  • elk
  • K8S
  • ansible
  • Jenkins
  • GitLabCI_CD
  • 随笔
  • 面试
  • 工具
  • 收藏夹
  • Shell
  • python
  • golang
友链
  • 索引

    • 分类
    • 标签
    • 归档
    • 首页 (opens new window)
    • 关于我 (opens new window)
    • 图床 (opens new window)
    • 评论 (opens new window)
    • 导航栏 (opens new window)
周刊
GitHub (opens new window)

章工运维

业精于勤,荒于嬉
首页
  • linux
  • windows
  • 中间件
  • 监控
  • 网络
  • 存储
  • 安全
  • 防火墙
  • 数据库
  • 系统
  • docker
  • 运维工具
  • other
  • elk
  • K8S
  • ansible
  • Jenkins
  • GitLabCI_CD
  • 随笔
  • 面试
  • 工具
  • 收藏夹
  • Shell
  • python
  • golang
友链
  • 索引

    • 分类
    • 标签
    • 归档
    • 首页 (opens new window)
    • 关于我 (opens new window)
    • 图床 (opens new window)
    • 评论 (opens new window)
    • 导航栏 (opens new window)
周刊
GitHub (opens new window)
  • linux

  • windows

  • 中间件

  • 网络

    • tcpdump 抓包分析全攻略
      • 🔥 1. tcpdump 是什么?
      • 📡 2. 快速抓包命令
      • 🔍 3. tcpdump 抓包分析技巧
        • 📌 3.1 关键 TCP 三次握手
        • 📌 3.2 TCP 四次挥手
        • 📌 3.3 服务器无法访问
        • 📌 3.4 分析 HTTP 请求
        • 📌 3.5 检测 DDOS 攻击
        • 📌 3.6 DNS 解析异常
      • 🚀 4. tcpdump 高级技巧
    • 网络代理
    • 网络工具
    • 给你的域名申请一个泛域名证书
    • tcpdump抓包教程
    • Wireshark抓包教程
    • 使用frp实现内网穿透
    • nat vps配置ddns
  • 安全

  • 存储

  • 防火墙

  • 数据库

  • 系统

  • docker

  • other

  • 监控

  • 运维
  • 网络
章工运维
2022-12-15
目录

tcpdump 抓包分析全攻略

# 🔥 1. tcpdump 是什么?

tcpdump 是 Linux 上最强大的抓包工具之一,用于 实时监听网络流量、分析数据包,是运维 & 安全必备技能!

✅ 实时抓包:直接在终端运行,无需 GUI ✅ 精准过滤:支持 BPF 语法,快速筛选数据包 ✅ 兼容 Wireshark:可保存 pcap 文件,后续深入分析

📌 安装 tcpdump

# CentOS / RHEL
yum install -y tcpdump  

# Ubuntu / Debian
apt install -y tcpdump
1
2
3
4
5

📌 查看版本

tcpdump --version
1

📌 查看可用网卡

tcpdump -D
1

# 📡 2. 快速抓包命令

📌 抓取所有数据包

tcpdump -i eth0
1

💡 默认监听 eth0 网卡,按 Ctrl + C 停止

📌 抓取特定端口

tcpdump -i eth0 port 80
1

📌 抓取特定 IP 的数据包

tcpdump -i eth0 host 192.168.1.100
1

📌 保存数据包(Wireshark 可用)

tcpdump -i eth0 -w capture.pcap
1

📌 读取 pcap 文件

tcpdump -r capture.pcap
1

📌 仅抓取 TCP SYN(新连接)

tcpdump -i eth0 'tcp[tcpflags] & tcp-syn != 0'
1

📌 抓取 HTTP 请求

tcpdump -i eth0 port 80 and 'tcp[tcpflags] & tcp-push != 0'
1

# 🔍 3. tcpdump 抓包分析技巧

# 📌 3.1 关键 TCP 三次握手

✅ 三次握手流程: 1️⃣ 客户端 → 服务器 SYN(请求建立连接) 2️⃣ 服务器 → 客户端 SYN + ACK(同意连接) 3️⃣ 客户端 → 服务器 ACK(确认)

💡 用 tcpdump 抓取三次握手

tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn|tcp-ack) != 0'
1

⚠️ 异常分析 ❌ SYN 发送但无 ACK → 服务器未响应,可能端口未开放 ❌ SYN+ACK 但无 ACK → 客户端未响应,可能网络不通


# 📌 3.2 TCP 四次挥手

✅ 四次挥手流程: 1️⃣ 客户端 → 服务器 FIN(请求断开) 2️⃣ 服务器 → 客户端 ACK(收到断开请求) 3️⃣ 服务器 → 客户端 FIN(确认断开) 4️⃣ 客户端 → 服务器 ACK(最终确认)

💡 用 tcpdump 抓取断开连接

tcpdump -i eth0 'tcp[tcpflags] & (tcp-fin|tcp-ack) != 0'
1

⚠️ 异常分析 ❌ 连接迟迟不释放 → 可能是 CLOSE_WAIT 状态,应用未正确关闭连接


# 📌 3.3 服务器无法访问

💡 抓取 192.168.1.100 的流量

tcpdump -i eth0 host 192.168.1.100
1

⚠️ 异常分析 ❌ 无数据包 → 可能是网络断开 / 防火墙拦截 ❌ 仅 SYN 无 ACK → 目标服务器未响应,端口可能未开放


# 📌 3.4 分析 HTTP 请求

💡 抓取 HTTP 流量

tcpdump -i eth0 port 80 -A
1

📌 解析 HTTP GET 请求

GET /index.html HTTP/1.1
Host: example.com
User-Agent: curl/7.68.0
1
2
3

⚠️ 异常分析 ❌ HTTP 404 → 资源不存在 ❌ HTTP 500 → 服务器内部错误 ❌ HTTP 403 → 权限不足


# 📌 3.5 检测 DDOS 攻击

💡 抓取短时间大量 SYN

tcpdump -i eth0 'tcp[tcpflags] & tcp-syn != 0'
1

📌 查看 SYN 数量

tcpdump -i eth0 'tcp[tcpflags] & tcp-syn != 0' | wc -l
1

⚠️ 异常分析 ❌ 大量 SYN 但无 ACK → 可能是 SYN Flood 攻击 ✅ 解决方案

iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
1

(限制每秒最大新建连接数)


# 📌 3.6 DNS 解析异常

💡 抓取 DNS 请求

tcpdump -i eth0 port 53 -vv
1

⚠️ 异常分析 ❌ 无 DNS 响应 → 可能是 DNS 服务器故障 ❌ 解析超时 → 可能是防火墙拦截

# 🚀 4. tcpdump 高级技巧

📌 只显示 IP,不解析域名

tcpdump -i eth0 -n
1

📌 只显示端口号,不解析服务名

tcpdump -i eth0 -nn
1

📌 显示数据包详细信息

tcpdump -i eth0 -vvv
1

📌 显示数据包内容(ASCII + HEX)

tcpdump -i eth0 -XX
1

📌 按数据包大小过滤

tcpdump greater 1000
1

📌 限制抓包数量

tcpdump -i eth0 -c 100
1

原文链接 (opens new window)

微信 支付宝
上次更新: 2025/04/09, 20:54:45

← 应用性能监控-skywalking 网络代理→

最近更新
01
shell脚本模块集合
05-13
02
生活小技巧(认知版)
04-29
03
生活小技巧(防骗版)
04-29
更多文章>
Theme by Vdoing | Copyright © 2019-2025 | 点击查看十年之约 | 鄂ICP备2024072800号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式