Containerlab edgeshark 集成
把 Wireshark 嵌进 Containerlab 的 Web 视图里——容器抓包,从此不再 ssh 跳来跳去
| 📌 导读 上一篇我们用 containerlab graph 把拓扑渲染成浏览器里可拖拽的 Web 视图——但只能「看图」,想抓包还得另外登服务器跑 tcpdump。本篇介绍的 Edgeshark,由 Siemens 团队开源,正好补上「容器内实时抓包」这一环:在 Edgeshark 的 Web 界面里点一下 Wireshark 鳍状按钮,浏览器就调起本地 Wireshark 直接抓容器接口的包,全程图形化。 |
📋 本文目录
|
一、为什么需要 Edgeshark
上一篇我们用 containerlab graph 在浏览器里看拓扑了——但「看图归看图,抓包归抓包」还是分两步:如果要分析某个容器接口的流量,要么 ssh 到服务器跑 tcpdump,要么用 podman exec 钻进容器,两种方式都不够直观。
Edgeshark 的设计目标就是把这个过程彻底 Web 化——拓扑里加一个节点,deploy 后浏览器就能看到所有容器接口的实时流量,点哪个接口直接调起本地 Wireshark 开始抓包。
| 💡 关键点 根据 Containerlab 官方说明,集成 Edgeshark 的标准方式是在 clab 拓扑文件里直接添加一个 kind: edgeshark 节点(详见 官方文档)。本篇先用更轻量的方式:宿主机上独立部署 Edgeshark,体验一下它能做什么。 |
二、一行命令部署 Edgeshark
Edgeshark 官方提供了一键部署脚本,本质是拉一组容器(edgeshark 自身 + 抓包代理)起来。在宿主机上直接执行:
wget -q –no-cache -O – \\
https://github.com/siemens/edgeshark/raw/main/deployments/nocomposer/edgeshark.sh \\
| DOCKER_DEFAULT_PLATFORM= bash -s up
脚本会:
1)从 GitHub 拉取 edgeshark.sh 部署脚本 2)通过 docker compose 起一组服务(含 edgeshark、packetflix、gortcp 等) 3)在宿主机 5001 端口暴露 Web UI

| ⚠️ 注意 脚本里那段 DOCKER_DEFAULT_PLATFORM= 是给 Apple Silicon Mac 留的——如果你跑在 x86 宿主机上也可以留着,脚本会自动跳过。 |
三、浏览器访问 Edgeshark Web 界面
部署完成后,浏览器打开 http://localhost:5001(远程服务器就改成 服务器IP:5001),就能看到 Edgeshark 的 Web 界面:
▸ 左侧是所有发现的容器节点(自动扫描宿主机上的容器) ▸ 中间是选中容器的接口列表,点哪个接口就抓哪个 ▸ 右侧是抓包控制面板——选接口、点按钮、调起本地 Wireshark

四、Wireshark 抓包插件 cshargextcap
Edgeshark Web 界面里点击「Wireshark」按钮时,它是通过 extcap 协议调起本地 Wireshark 的。所以要本地 Wireshark 真正能接到 Edgeshark 的抓包流,必须先装一个外部捕获插件 cshargextcap。
Windows 插件下载地址:
https://github.com/siemens/cshargextcap/releases/tag/v0.10.7
从 siemens/csharkextcap 项目的发布页面下载最新的 Windows 安装程序,安装时注意安装目录要与 Wireshark 执行文件目录相同,否则插件不会被 Wireshark 识别。
装完验证一下:
打开 Wireshark → 帮助 → 关于 → 插件,查看是否有 cshargextcap 插件信息。

| ⚠️ 注意 不同 Wireshark 版本对应的 cshargextcap 版本可能不同,安装前先看 release 页面的兼容性说明,否则可能装完不生效。 |
五、从 Web 界面一键启动 Wireshark
插件装好之后,回到 Edgeshark Web 界面,选中一个容器 → 选中目标接口 → 找到那个 Wireshark 鳍状按钮,单击即可启动 Wireshark 捕获会话。
点完按钮后会发生这几件事:
1)Edgeshark 主动把抓包流推给本地 Wireshark 2)Wireshark 弹出捕获窗口,实时显示该容器接口的包 3)抓完直接保存为 pcap,常规分析流程不变



| 💡 一句话记忆 「edgeshark」做服务端 + Web UI;「cshargextcap」是本地 Wireshark 抓容器包的桥梁。两者缺一不可:没前者看不到界面,没后者点不出抓包。 |
六、写在最后
Edgeshark 解决了一个 Containerlab 老问题——「容器内抓包能不能像物理设备那样图形化?」答案是肯定的:Wireshark 鳍状按钮一按,包直接飞到本地,调试体验丝滑。
它的精妙之处在于没有重新发明轮子——既没造一套新协议、也没替换 Wireshark,只是用 extcap 协议把「远程抓包流」推给本地 Wireshark 渲染,所有 Wireshark 的过滤、统计、解码功能照常用。
Containerlab 实战系列从「介绍 → 部署 → cRPD 实验 → 自动加载配置 → 抓包 → Web 拓扑图 → edgeshark 集成」,基本把一个网络工程师用 Containerlab 调试环境的全流程串了起来。
下一篇是本系列的终章——我们用 Cisco IOL(Internetwork Operating System Lab 版)做一次端到端实验,把之前学到的所有能力(拓扑、自动配置、抓包、edgeshark)综合演练一遍,敬请期待 👇
— Containerlab 实战系列 · 之七 · Z 的网络知多少 · 持续更新中 —




