网络抓包tcpdump-WireShark

本文介绍了tcpdump命令的使用,包括-i指定网卡,-c捕包数量,-C文件大小,-W文件数量和-w文件路径等参数。同时,展示了如何在不同场景下使用tcpdump,如抓取特定端口、IP的数据包,以及在Docker或containerd环境下通过kubectl、dockerinspect和nsenter工具进行容器内的网络抓包。
摘要由CSDN通过智能技术生成

tcpdump —linux
tcpdump ip -i etc0 -c 100 -C 30 -W 5 -w tt.cap
解释:
-i 指定抓包网卡
-c 捕获数据包数量
-C 单个捕获文件大小。单位M
-W 捕获文件数量
-w 捕获文件路径命名

tcpdump tcp -i eth0 -t -s 0 and dst port 22 and src net ip地址 -C 20 -W 40 -w ./rrr.pcp
-i 只抓经过eth0的数据包
-t 不显示时间戳
-s 0 抓取数据包默认长度为68字节,如果是-S 0可以抓取完整的数据包
-c 捕获的数据包数量
dst port 22 抓取目标端口是22的数据包
src net ip 数据包的源网络地址ip

tcpdump -i any 监听所有网卡上的请求
tcpdump -i any host 192.168.22.56 -w ttt.cap
捕获所有经过网卡,目的ip为192.168.22.56的网络数据包

tcpdump -I 网卡 host 192.168.1.11
#抓包捕获192.168.1.11经过网卡的数据包

tcpdump -i eth0 host 192.168.1.11 and port 80 -w /eee.cap
抓取经过网卡eth0,目标主机为192.168.1.11的端口80的网络数据包

容器抓包方法

1 可以先执行kubectl get pods $PodName -n $NameSpace -o wide看看pod运行的节点
2 登录到对应的node上,
如果是docker运行时,执行 docker ps| grep $pod名称找到容器ID,然后在执行 docker inspect -f {{.State.Pid}} 容器id 找到容器的进程pid
如果是containerd, 使用命令:
yum -y install jq; crictl inspect $(crictl ps | grep crictl pods | grep $POD_NAME名称 | awk '{print$1}' | awk ‘{print$1}’) | jq .info.pid
找到容器的进程pid
3 执行yum -y install util-linux.x86_64 安装下 nsenter工具,然后执行 nsenter --target 容器pid -n 进入到容器的网络名称空间
使用命令抓包:tcpdump -i eth0 host ip地址 and port 端口 -s 0 -C 40 -W 50 -w /tmp/Pod.pcap

客户端到目标端抓包
sudo tcpdump -i eth0 tcp and port 3306 -n -nn -C 20 -W 50 -s 0 -w /tmp/mysql.pcap

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值