Administrator
Published on 2025-06-23 / 5 Visits
0

Tcpdump 在 Linux 上抓取指定 IP 的 TCP 包

#AI

在 Linux 上抓取指定 IP 的 TCP 包,通常使用 tcpdump 命令。以下是几种常见场景的命令示例:

1. 抓取来自或发往指定 IP 的所有 TCP 包

sudo tcpdump -i any host 192.168.1.100 and tcp -w output.pcap
  • -i any:监听所有网络接口
  • host 192.168.1.100:指定目标 IP
  • and tcp:只抓取 TCP 协议
  • -w output.pcap:将数据包保存到文件

2. 抓取特定端口的 TCP 包

sudo tcpdump -i any host 192.168.1.100 and tcp port 80 -w http.pcap
  • port 80:只抓取 80 端口的流量

3. 抓取指定方向的流量

# 只抓取流入指定 IP 的包
sudo tcpdump -i any dst host 192.168.1.100 and tcp -w inbound.pcap

# 只抓取流出指定 IP 的包
sudo tcpdump -i any src host 192.168.1.100 and tcp -w outbound.pcap
  • dst:目标地址为指定 IP
  • src:源地址为指定 IP

4. 实时查看包内容(不保存文件)

sudo tcpdump -i any host 192.168.1.100 and tcp -A -s 0
  • -A:以 ASCII 格式显示包内容
  • -s 0:捕获完整的数据包(默认只截取部分)

5. 限制捕获的数据包数量

sudo tcpdump -i any host 192.168.1.100 and tcp -c 100 -w limited.pcap
  • -c 100:只捕获 100 个数据包后停止

注意事项

  • 需要 root 权限(使用 sudo
  • 长时间抓取会生成大量数据,建议配合 -c-G(按时间分割文件)使用
  • 抓取后可用 Wiresharktcpdump -r file.pcap 分析文件

根据你的具体需求调整命令参数即可。