写点什么

新的开源工具 Subtrace 为容器环境带来网络分析功能

作者:Matt Saunders

  • 2025-08-06
    北京
  • 本文字数:2141 字

    阅读完需:约 7 分钟

大小:1021.30K时长:05:48
新的开源工具Subtrace为容器环境带来网络分析功能

Y Combinator 孵化的初创公司 Subtrace 发布了一款开源工具,用于分析容器化应用的网络流量。工具的开发者将其定位为“容器版 Wireshark”,旨在简化 Docker 和 Kubernetes 环境中的网络调试工作。


Subtrace 将系统调用跟踪与网络数据包分析集成在一个统一的界面中,让开发人员能够清晰地观察到应用在系统层面的行为以及数据在容器网络中的流动情况。该工具利用 eBPF 技术来捕获这些信息,从而在理论上将对运行中容器的性能影响降至最低。



Subtrace 的开发团队表示,传统的网络分析工具在处理容器化环境时面临诸多挑战。像 Wireshark 这样的标准工具需要手动配置才能访问容器网络命名空间,这对于需要处理多个容器或 Kubernetes 集群的开发人员来说,不仅过程复杂,而且耗时费力。


Subtrace 通过提供原生容器集成来解决这些挑战。它理解容器的概念,并能够自动将网络流量与容器身份相关联,从而减少了分析容器网络行为所需的大量手动工作。Subtrace 可以自动发现正在运行的容器,并在无需手动配置命名空间的情况下连接到其网络接口。它还能够在 Kubernetes 环境中将网络流量与容器元数据(如 Pod 名称和服务标签)相关联。



该工具提供了命令行界面和 Web 界面。Web 界面专为容器工作负载设计,提供了类似于 Wireshark 的可视化网络流量分析。用户可以根据容器、服务或协议过滤流量,并详细检查数据包的详细内容。


Subtrace 在 Hacker News 上的发布公告引发了关于其技术方法和定位的一些讨论。一些用户对其“容器版 Wireshark”的说法提出了质疑,用户 jolmg 评论道:“我最初对‘Docker 容器版 Wireshark’的印象是‘……好吧,Wireshark 本身已经可以用于 Docker 容器了,所以如果你的目标是成为 Docker 容器版的 Wireshark,那么你从定义上就注定会失败。你无法在成为 Wireshark 的同时打败 Wireshark。’”


用户 sophacles 提供了详细的反馈,阐述了他们心目中真正的“容器版 Wireshark”应有的功能。他指出:“它并不是 Wireshark,它离 Wireshark 还差得远,仅仅因为它能够捕获一些 TCP 数据包。”他进一步强调了诸如 DNS 流量检查、通过容器网络堆栈的数据包跟踪以及 NAT 跟踪能力等功能的必要性。


不过,其他一些社区成员也指出,Subtrace 可以填补一个独特的细分市场。用户 chatmasta 表示:“在我看来,真正的用户体验问题是 Wireshark 和 DevTools 之间存在一个空白。如果有一个程序可以从 .pcap 文件中渲染出 DevTools UI,那将是非常酷的。”


社区成员对 Subtrace 的 TLS 解密方法印象深刻。该工具会生成临时的 TLS 根证书,并将其注入系统证书库,而无需 root 权限。项目创建者 adtac 解释说:“我们拦截 open(2) 系统调用,查看它是否是 /etc/ssl/certs/ca-certificates.crt(或等效文件)。如果是,我们会将临时根 CA 添加到实际的 CA 证书列表中。”


对于这一解释,社区的反应褒贬不一。用户 cyberax 评论道:“我不知道自己是感到震惊还是惊叹。”而用户 chatmasta 则称赞这是一种“很棒的黑客手段”,提供了“干净”的代理功能。用户 1oooqooq 警告说:“就像所有那些过于精巧却又未被充分记录的东西一样,你或许会对它赞叹不已,但直到你花费数周时间去排查它所引发的问题时,你才会意识到它的复杂性。”


社区讨论还包含了对数据隐私的担忧,用户 gerwim 指出:“似乎 subtrace 进程会将所有数据发送到你的服务器。我不愿意在生产环境中这样做,因为那里有 API 密钥和个人数据。”对此,开发者表示可以通过在本地运行工具来缓解这些担忧。本地运行模式允许用户完全在本地运行 Subtrace,无需将数据发送到外部服务器。


其他开源工具也提供了类似的分析容器网络流量的功能。Pixie 为 Kubernetes 集群提供了全面的可观测性,包括网络跟踪能力。Pixie 捕获的遥测数据范围更广,不仅包括网络流量,还包括应用程序的指标和分布式追踪信息。不过 Pixie 需要消耗更多的系统资源,并且在某些环境中部署起来可能较为复杂。Pixie 主要专注于 Kubernetes,支持 11 种应用协议,而 Subtrace 支持 Docker 和 Kubernetes 部署。


Hubble 作为 Cilium 网络堆栈的一部分,提供了网络可观测性。得益于与 Cilium 网络策略的紧密集成,Hubble 可以提供服务之间的详细流量分析。Hubble 还提供用于可视化网络流量的命令行工具和图形界面。不过它依赖 Cilium 作为容器网络接口,而 Subtrace 能够与任何容器网络设置兼容。


微软的 Retina 专注于 Kubernetes 集群的网络可观测性,能够捕获数据包并分析网络流量,并且与 Azure 监控服务集成良好。不过,虽然 Retina 是开源的,但与 Azure 的兼容性是最好的。如果要在其他云平台上运行,Retina 需要进行更多的配置工作,并且其学习曲线似乎比 Subtrace 更为陡峭。


Subtrace 直接通过 eBPF 程序从内核捕获网络数据。这种方法比传统的在用户空间运行的数据包捕获方法开销更小,因此可以在不影响应用性能的情况下处理大量的网络流量。使用 eBPF 也意味着该工具需要在较新的 Linux 内核版本上运行,并且需要适当的权限来加载 eBPF 程序,这在某些环境中可能会受到限制。


Subtrace 现已作为开源项目在 GitHub 上发布,并作为商业产品在 Subtrace.dev 上提供。


【声明:本文由 InfoQ 翻译,未经许可禁止转载。】


原文链接:

https://www.infoq.com/news/2025/07/subtrace-network-analysis/

2025-08-06 14:008774

评论

发布
暂无评论

模块一:为何架构设计能力难以提升? --学习总结

小鹿

Vue进阶(幺伍零):巧用 key 提升页面渲染性能及触发生命周期函数

No Silver Bullet

Vue 渲染性能 10月月更

新征程、新时势、新聚变——2021一亩地儿合作伙伴大会在京成功举办

收藏这36个正则表达式,开发效率提高80%

Tom弹架构

Java 正则表达式

推荐7款超实用的推特推特下载器,包括电脑和手机上使用(小伙伴们快快收藏起来)

So...

twitter 推特视频下载 推特 x x视频下载

架构设计六 如何设计业务的微服务架构

nydia

微服务 架构设计

华为首次采用数字人全程实时手语直播,并宣布全面开放手语服务能力

叶落便知秋

拆分电商系统为微服务

Yina🌝很浪🌊

架构实战训练营模块 6 作业

Sonichen

vivo AI 计算平台的 ACK 混合云实践

阿里巴巴云原生

阿里云 云原生 ACK Vivo

谐云边缘计算大规模落地实践,带你见证边缘的力量!

谐云

云计算 边缘计算

实现服务器和客户端数据交互,Java Socket有妙招

华为云开发者联盟

socket 进程 服务器 客户端 java

极客时间架构实战营作业六

jjn0703

架构实战营

零信任能力成熟度模型白皮书发布!内附下载资源

华为云开发者联盟

安全 隐私保护 华为云 网络架构 零信任

0 基础架构入门 - 6(电商系统微服务架构)

felix

架构实战营 0 基础架构入门

电商系统微服务系统设计

Imaginary

爱奇艺联合WSDM发起用户留存预测挑战赛

爱奇艺技术产品团队

netty系列之:netty对http2消息的封装

程序那些事

Java Netty 程序那些事 http2

云图说 | 分布式缓存服务DCS—站在开源Redis前辈的肩膀上,扬帆起航

华为云开发者联盟

redis 缓存 分布式 华为云 DCS

1024程序员节的正确打开方式

云智慧AIOps社区

程序员 开源技术 1024我在现场 飞鱼 云智慧

美团的动态线程池,不依赖中间件可以实现么?

马丁玩编程

Spring Boot ThreadPoolExecutor

【KubeMeet 上海站回顾】 探索云原生应用管理与交付新解法

阿里巴巴云原生

阿里云 开源 云原生 KubeMeet

架构实战营模块六作业 - 拆分电商系统为微服务

李焕之

go-zero 实战之 blog 系统

万俊峰Kevin

golang 微服务 go-zero

1024程序员:算法&仓鼠&创业

博文视点Broadview

顶会VLDB'22论文解读:多元时序预测算法METRO

华为云开发者联盟

数据库 华为云 多元时序预测算法 VLDB'22 华为云数据库创新Lab

基于 RocketMQ 的基金数字化陪伴体系的架构实践

阿里巴巴云原生

阿里云 RocketMQ 云原生 消息队列 金融场景

2021年秋季明道云伙伴大会,邀您参与!

明道云

Python代码阅读(第44篇):寻找符合条件的元素的位置

Felix

Python 编程 Code Programing 阅读代码

华为在HDC2021发布全新HMS Core 6 宣布跨OS能力开放

叶落便知秋

第 23 章 -《Linux 一学就会》- expect - 正则表达式-sed-cut的使用

学神来啦

Linux Shell linux运维 linux云计算 linux一学就会

新的开源工具Subtrace为容器环境带来网络分析功能_后端_InfoQ精选文章