tcpdump各种抓包方式

1. 在源 Pod 抓包

目标:捕获从 Pod-A 发出的包和进入 Pod-A 的包。

命令

  • 捕获从 cni0 接口发出的包:

    kubectl exec -it <pod-a-name> -- tcpdump -i cni0 -nn tcp dst port 80
    
  • 捕获进入 cni0 接口的包:

    kubectl exec -it <pod-a-name> -- tcpdump -i cni0 -nn tcp src port 80
    

2. 在源节点抓包

目标:捕获在源节点的网络接口上传输的包。

命令

  • 捕获从 flannel.1 隧道接口发出的包:

    sudo tcpdump -i flannel.1 -nn tcp dst port 80
    
  • 捕获进入 eth0 物理接口的包:

    sudo tcpdump -i eth0 -nn tcp dst port 80
    

3. 在目标节点抓包

目标:捕获在目标节点的网络接口上传输的包。

命令

  • 捕获从 eth0 物理接口发出的包:

    sudo tcpdump -i eth0 -nn tcp src port 80
    
  • 捕获进入 flannel.1 隧道接口的包:

    sudo tcpdump -i flannel.1 -nn tcp src port 80
    

4. 在目标 Pod 抓包

目标:捕获到达 Pod-B 的包和从 Pod-B 发出的包。

命令

  • 捕获进入 cni0 接口的包:

    kubectl exec -it <pod-b-name> -- tcpdump -i cni0 -nn tcp src port 80
    
  • 捕获从 cni0 接口发出的包:

    kubectl exec -it <pod-b-name> -- tcpdump -i cni0 -nn tcp dst port 80
    

5、各种抓包方式

  • 捕获所有从 IP 地址 192.168.1.100 发出的数据包:

    tcpdump -nn src 192.168.1.100
    
  • 捕获所有发往 IP 地址 192.168.1.101 的数据包:

    tcpdump -nn dst 192.168.1.101
    
  • 捕获在两个特定 IP 地址之间传输的数据包:

    tcpdump -nn src 192.168.1.100 and dst 192.168.1.101
    
  • 捕获所有目标端口为 80 的 TCP 数据包:

tcpdump -nn tcp dst port 80
  • 捕获所有发送到特定 IP 地址和端口的 TCP 数据包:
tcpdump -nn tcp dst host 192.168.1.100 and dst port 8080
  • 捕获所有目标端口为 443 的 TCP 数据包:
tcpdump -nn tcp dst port 443
posted @ 2025-07-09 11:46  姬高波  阅读(20)  评论(0)    收藏  举报