Repolode
hengyoush

hengyoush/kyanos

基于 eBPF 的网络分析命令行工具,可抓取 HTTP、Redis、MySQL、Kafka 等请求并定位内核各阶段的延迟。

可替代:tcpdump

Star
5,080
Fork
235
未关闭 Issue
32
最近提交
11小时前

这是什么?

Kyanos 是一款基于 eBPF 的网络问题分析工具,可以抓取 HTTP、Redis、MySQL、Kafka、MongoDB、RocketMQ、DNS 等协议的请求与响应,无需经历抓包、下载、离线分析的繁琐流程。

除了原始抓取,它还支持按进程、容器、L7 协议字段、响应字节数和延迟等条件过滤流量,并能按维度聚合指标,例如查看发往远端 IP 的最大响应。每条记录会拆解数据包在进程、网卡、socket 缓冲区之间各节点的耗时,帮助定位慢请求卡在哪个阶段。SSL 流量会以明文形式展示。

项目以单个静态链接的二进制文件发布,结果直接在终端输出,需要 root 权限运行。内核版本需为 3.10(3.10.0-957 及以上)或 4.14 及以上。

核心功能

  • 01抓取 HTTP、Redis、MySQL、Kafka、MongoDB、RocketMQ、DNS 等协议的请求与响应。
  • 02可按 PID、容器 ID、协议字段、响应大小和延迟过滤流量。
  • 03展示数据包从网卡到 socket 缓冲区再到进程的各阶段耗时。
  • 04按时间窗口聚合统计,如最大响应或最慢请求。
  • 05SSL 流量解密后以明文显示。
  • 06单个二进制文件即可运行,结果直接在终端输出。

适用场景

  • 快速找出主机上最近几秒内最慢的请求。
  • 判断访问 Redis 等远端服务的延迟是出在内核、网络还是应用层。
  • 定位 HTTP 服务带宽突增时是哪些 IP 或请求造成的。
  • 按容器过滤流量,排查容器化服务的网络问题。

快速上手

  1. 1

    从发布页面下载适用于 amd64 或 arm64 的静态链接二进制文件

  2. 2

    解压下载的压缩包

    tar xvf kyanos_vx.x.x_linux_amd64.tar.gz
  3. 3

    以 root 权限运行 kyanos 以捕获所有支持的协议

    sudo ./kyanos watch

使用前须知

  • 仅支持 Linux,因为它依赖 eBPF,并要求内核为 3.10.0-957 或 4.14 及以上版本。
  • 运行时需要 root 权限。

收录于专题

标签

常见问题

kyanos 是什么?
基于 eBPF 的网络分析命令行工具,可抓取 HTTP、Redis、MySQL、Kafka 等请求并定位内核各阶段的延迟。 Kyanos 是一款基于 eBPF 的网络问题分析工具,可以抓取 HTTP、Redis、MySQL、Kafka、MongoDB、RocketMQ、DNS 等协议的请求与响应,无需经历抓包、下载、离线分析的繁琐流程。
kyanos 可以免费使用吗?用的什么许可证?
kyanos 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
kyanos 还在维护吗?
活跃维护中。kyanos 最近一次提交是在 2026年10月24日。
kyanos 适合用来做什么?
快速找出主机上最近几秒内最慢的请求。 判断访问 Redis 等远端服务的延迟是出在内核、网络还是应用层。 定位 HTTP 服务带宽突增时是哪些 IP 或请求造成的。 按容器过滤流量,排查容器化服务的网络问题。
kyanos 怎么安装和运行?
从发布页面下载适用于 amd64 或 arm64 的静态链接二进制文件 解压下载的压缩包: tar xvf kyanos_vx.x.x_linux_amd64.tar.gz 以 root 权限运行 kyanos 以捕获所有支持的协议: sudo ./kyanos watch
在哪里获取 kyanos?
源代码和安装说明在 GitHub 上:https://github.com/hengyoush/kyanos

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目