Linux常用命令——tcpdump

       tcpdump 是一款强大的网络抓包工具,常用于 Linux 系统中网络故障排查和网络数据包分析。它可以捕获网络接口上的数据包,并以多种方式进行输出显示,帮助网络管理员和开发人员深入了解网络通信情况。

目录

📦 第一部分:安装与基础

1. 安装 tcpdump

2. 基础命令

🎯 第二部分:关键过滤技巧

1. 按主机过滤

2. 按端口过滤

3. 协议过滤

4. 高级逻辑

🔍 第三部分:深度解析与输出控制

1. 详细输出模式

2. 保存与读取抓包文件

3. 时间戳控制

🛠 第四部分:高级使用技巧

1. 抓取特定流量特征

2. 性能优化

3. 分析TCP连接状态

📊 第五部分:输出分析与示例

示例1:TCP包分析

示例2:HTTP请求解析

⚠️ 注意事项

🧰 辅助工具推荐

💡 总结


📦 第一部分:安装与基础

1. 安装 tcpdump
  • Debian/Ubuntu:
    sudo apt install tcpdump
  • RHEL/CentOS:
    sudo yum install tcpdump
  • macOS:
    自带,或通过 brew install tcpdump 更新版本。
2. 基础命令
  • 抓取所有流量(默认首个网卡):
    sudo tcpdump
  • 指定网卡(如 eth0、en0):
    sudo tcpdump -i eth0
  • 限制抓包数量:
    sudo tcpdump -c 10 (抓10个包后停止)
  • 显示IP而非主机名:
    sudo tcpdump -n

🎯 第二部分:关键过滤技巧

1. 按主机过滤
  • 抓取特定源/目的IP:
    tcpdump host 192.168.1.100
    tcpdump src 192.168.1.1 && dst 10.0.0.5
2. 按端口过滤
  • 抓取特定端口流量:
    tcpdump port 80
    tcpdump portrange 8000-8080
3. 协议过滤
  • 过滤特定协议(TCP/UDP/ICMP):
    tcpdump tcp
    tcpdump icmp
4. 高级逻辑
  • 组合条件and/or/not):
    tcpdump "src 192.168.1.1 and (port 80 or port 443)"

🔍 第三部分:深度解析与输出控制

1. 详细输出模式
  • 显示数据包详情:
    tcpdump -vv (更详细的信息)
    tcpdump -X (十六进制 + ASCII 输出)
2. 保存与读取抓包文件
  • 保存到文件:
    tcpdump -w capture.pcap
  • 读取文件分析:
    tcpdump -r capture.pcap
3. 时间戳控制
  • 格式化时间戳:
    tcpdump -tttt (年-月-日 时:分:秒)

🛠 第四部分:高级使用技巧

1. 抓取特定流量特征
  • HTTP GET/POST 请求:
    tcpdump -s 0 -A 'tcp port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'
  • 抓取 DNS 查询:
    tcpdump -i any port 53
2. 性能优化
  • 快速模式(避免域名解析):
    tcpdump -n -l
  • 限制抓包大小:
    tcpdump -s 100(每个包截断至前100字节)
3. 分析TCP连接状态
  • 三次握手(SYN/SYN-ACK/ACK):
    tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-ack) != 0'

📊 第五部分:输出分析与示例

示例1:TCP包分析
15:30:45.123456 IP 192.168.1.10.54321 > 93.184.216.34.80: Flags [S], seq 123456789, win 65535, options [mss 1460], length 0
  • [S]: SYN 标志(连接建立)
  • seq: 初始序列号
  • win: 接收窗口大小
  • mss: 最大分段大小
示例2:HTTP请求解析
GET /index.html HTTP/1.1
Host: example.com
User-Agent: curl/7.68.0
  • 可直接看到HTTP头部信息(需结合 -A 或 -X 选项)。

⚠️ 注意事项

  1. 权限问题: 抓包需要 root 或 sudo 权限。
  2. 数据安全: 敏感信息(密码、Cookie)可能被捕获,慎用并遵守法律法规。
  3. 资源占用: 高速网络下抓包可能导致高负载,使用 -c/-s 限制。

🧰 辅助工具推荐

  • Wireshark: 图形化分析 .pcap 文件。
  • tshark: Wireshark 的命令行版本。
  • ngrep: 基于正则表达式的网络包过滤。

💡 总结

掌握 tcpdump 的关键点:

  • 过滤语法精准定位目标流量。
  • 输出解析理解协议细节。
  • 文件操作结合工具深入分析。

通过实践场景(如调试 API 调用、分析网络延迟),逐步提升网络排查能力!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值