使用tcpdump抓取容器中的数据包

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 学习记录下,容器的网络数据包抓取

抓包通常使用tcpdump,但是容器中可能不存在此命令,不过可以在宿主机上通过tcpdump 抓包

演示下,容器镜像为bash:4.4

容器中执行此命令

bash-4.4# ip addr show1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN qlen 1000    link/ipip 0.0.0.0 brd 0.0.0.0
96: eth0@if97: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP
    link/ether 02:42:ac:13:00:0e brd ff:ff:ff:ff:ff:ff
    inet 172.19.0.14/16 brd 172.19.255.255 scope global eth0
       valid_lft forever preferred_lft forever

获取到了96: eth0@if97

在宿主机上执行

[root@izbp152ke14timzud0du15z ~]# ip addr show|grep 9797: vethc84527c@if96: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-587cd9a3ecfb state UP group default

获取到了 97: vethc84527c@if96

在宿主机上执行

tcpdump -i vethc84527c -w /tmp/jb

然后在容器上模拟发送数据包

bash-4.4# ping www.baidu.comPING www.baidu.com (180.101.49.12): 56 data bytes
64 bytes from 180.101.49.12: seq=0ttl=49time=12.010 ms
64 bytes from 180.101.49.12: seq=1ttl=49time=11.967 ms
^C
--- www.baidu.com ping statistics ---2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max =11.967/11.988/12.010 ms
bash-4.4# ping test.datakit.comPING test.datakit.com (46.105.51.17): 56 data bytes
64 bytes from 46.105.51.17: seq=0ttl=41time=262.981 ms
64 bytes from 46.105.51.17: seq=1ttl=41time=253.264 ms
64 bytes from 46.105.51.17: seq=2ttl=41time=253.460 ms
^C
--- test.datakit.com ping statistics ---3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max =253.264/256.568/262.981 ms

然后按ctrl+c停止tcpdump执行,把数据保存的文件,使用wireshark打开分析

目录
相关文章
|
3月前
|
存储 运维 安全
在Linux中,如何使用tcpdump和tshark进行实时数据包捕获?
在Linux中,如何使用tcpdump和tshark进行实时数据包捕获?
|
网络协议 网络虚拟化
|
Kubernetes 容器 Perl
Linkerd 2.10—使用 Debug Sidecar,注入调试容器来捕获网络数据包
Linkerd 2.10—使用 Debug Sidecar,注入调试容器来捕获网络数据包
219 0
|
网络协议 Linux Windows
使用tcpdump+wireshark抓包分析网络数据包
最近和学弟在调试一个GPRS通信模块,需求是通过GPRS模块通过http协议发送数据到服务器,但是http协议一直失败,服务器返回400,通过查询http状态码得知,http400错误是请求无效,因为GPRS模块没有实现http协议的封装,需要在TCP协议的基础上,手动拼装http格式的报文.
3915 0
|
SQL 关系型数据库 Linux
[20140212]linux下使用tcpdump抓取sql语句
[20140212]linu下使用tcpdump抓取sql语句.txt 我们生产系统问题多多,经常要跟踪用户执行的sql语句,当出现问题时要跟踪比较麻烦,我需要一个快捷的方式"看到"用户执行的sql语 句,想到了tcpdump抓包软件。
1563 0
|
网络协议
tcpdump抓取TCP标识位
tcpdump抓取TCP标识位 按每8位组算,TCP的标志位位于第13个8位组中,如下,第一行一共32位是0 - 3个8位组,第二行是4-7八位组,第三行是8-11八位组,data offset +reserved的前四个是第12个8位组,reserved中的后2位+6个标志位是第13个八位组。
1036 0
|
SQL 关系型数据库 MySQL
用Tcpdump抓取MySQL执行的SQL
编写脚本文件dumpsql.sh,内容如下: !/bin/bashtcpdump -i eth0 -s 0 -l -w out.
767 0