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

本文涉及的产品
函数计算FC,每月15万CU 3个月
应用实时监控服务-应用监控,每月50GB免费额度
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 本文介绍在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://docs.azure.cn/zh-cn/storage/common/storage-sas-overview?toc=%2Fstorage%2Fblobs%2Ftoc.json&bc=%2Fstorage%2Fblobs%2Fbreadcrumb%2Ftoc.json

 




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

相关文章
|
2月前
|
机器学习/深度学习 边缘计算 算法
基于BP神经网络的电池容量预测方法研究
基于BP神经网络的电池容量预测方法研究
|
4月前
计算网络号的直接方法
子网掩码用于区分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地址的组成与计算。
185 11
|
8月前
|
监控 安全 网络安全
深入解析PDCERF:网络安全应急响应的六阶段方法
PDCERF是网络安全应急响应的六阶段方法,涵盖准备、检测、抑制、根除、恢复和跟进。本文详细解析各阶段目标与操作步骤,并附图例,助读者理解与应用,提升组织应对安全事件的能力。
1049 89
|
6月前
|
缓存 数据中心 网络架构
5个减少网络延迟的简单方法
高速互联网对工作与娱乐至关重要,延迟和断线会严重影响效率和体验。本文探讨了导致连接缓慢的三个关键因素:吞吐量、带宽和延迟,并提供了减少延迟的实用方法。包括重启设备、关闭占用带宽的程序、使用有线连接、优化数据中心位置以及添加内容分发网络 (CDN) 等策略。虽然完全消除延迟不可能,但通过这些方法可显著改善网络性能。
1321 7
|
6月前
|
机器学习/深度学习 数据安全/隐私保护
基于神经网络逆同步控制方法的两变频调速电机控制系统matlab仿真
本课题针对两电机变频调速系统,提出基于神经网络a阶逆系统的控制方法。通过构造原系统的逆模型,结合线性闭环调节器实现张力与速度的精确解耦控制,并在MATLAB2022a中完成仿真。该方法利用神经网络克服非线性系统的不确定性,适用于参数变化和负载扰动场景,提升同步控制精度与系统稳定性。核心内容涵盖系统原理、数学建模及神经网络逆同步控制策略,为工业自动化提供了一种高效解决方案。
|
6月前
|
Kubernetes Shell Windows
【Azure K8S | AKS】在AKS的节点中抓取目标POD的网络包方法分享
在AKS中遇到复杂网络问题时,可通过以下步骤进入特定POD抓取网络包进行分析:1. 使用`kubectl get pods`确认Pod所在Node;2. 通过`kubectl node-shell`登录Node;3. 使用`crictl ps`找到Pod的Container ID;4. 获取PID并使用`nsenter`进入Pod的网络空间;5. 在`/var/tmp`目录下使用`tcpdump`抓包。完成后按Ctrl+C停止抓包。
206 12
|
8月前
|
机器学习/深度学习 数据采集 人工智能
GeneralDyG:南洋理工推出通用动态图异常检测方法,支持社交网络、电商和网络安全
GeneralDyG 是南洋理工大学推出的通用动态图异常检测方法,通过时间 ego-graph 采样、图神经网络和时间感知 Transformer 模块,有效应对数据多样性、动态特征捕捉和计算成本高等挑战。
210 18
GeneralDyG:南洋理工推出通用动态图异常检测方法,支持社交网络、电商和网络安全
|
9月前
|
机器学习/深度学习 数据采集 人工智能
基于Huffman树的层次化Softmax:面向大规模神经网络的高效概率计算方法
层次化Softmax算法通过引入Huffman树结构,将传统Softmax的计算复杂度从线性降至对数级别,显著提升了大规模词汇表的训练效率。该算法不仅优化了计算效率,还在处理大规模离散分布问题上提供了新的思路。文章详细介绍了Huffman树的构建、节点编码、概率计算及基于Gensim的实现方法,并讨论了工程实现中的优化策略与应用实践。
205 15
基于Huffman树的层次化Softmax:面向大规模神经网络的高效概率计算方法
|
7月前
|
机器学习/深度学习 算法 文件存储
神经架构搜索:自动化设计神经网络的方法
在人工智能(AI)和深度学习(Deep Learning)快速发展的背景下,神经网络架构的设计已成为一个日益复杂而关键的任务。传统上,研究人员和工程师需要通过经验和反复试验来手动设计神经网络,耗费大量时间和计算资源。随着模型规模的不断扩大,这种方法显得愈加低效和不够灵活。为了解决这一挑战,神经架构搜索(Neural Architecture Search,NAS)应运而生,成为自动化设计神经网络的重要工具。
|
9月前
|
域名解析 缓存 网络协议
优化Lua-cURL:减少网络请求延迟的实用方法
优化Lua-cURL:减少网络请求延迟的实用方法