bandwhich:终端网络流量监控工具
bandwhich:终端网络流量监控工具
bandwhich 在 GitHub 上已经拿到 11,739 Star 了。这是一个 CLI 实用工具,用于按进程、连接和远程 IP/主机名显示当前网络利用率。

核心功能
bandwhich 会嗅探指定网络接口,记录 IP 数据包大小,在 Linux 上跨引用 /proc 文件系统,macOS 上使用 lsof,Windows 上调用 WinApi 来匹配流量对应的进程。它会根据终端窗口大小自动调整显示内容,窗口空间不足时减少展示的信息。还会在后台尝试通过反向 DNS 解析 IP 对应的主机名,该功能基于最佳努力原则实现。

安装方式
项目提供多个平台的预编译二进制文件,可在 Release 页面直接下载。支持的系统包括 Linux、macOS、Windows 和 Android,其中 x64 架构的 Linux、macOS、Windows 获得完全支持,ARM 架构和 Android 为最佳努力支持。Android 版本为纯二进制文件,不是通用 APK 格式。
也可以从源码编译,需要 Rust 环境,克隆仓库后执行 cargo build --release 即可完成编译。交叉编译其他目标平台可使用 cross 工具,参照官方文档的步骤操作即可。
安装后配置
Linux 系统下,bandwhich 嗅探网络数据包需要提升权限,有两种配置方式。第一种是使用 setcap 给二进制文件分配永久权限,适合单用户机器或所有用户都可信的场景。第二种是每次运行时通过 sudo 提升权限,适合多用户环境的管理员使用。如果使用 sudo 时出现命令找不到的错误,可通过调整 sudo 的 PATH 环境变量或指定二进制文件完整路径解决。
Windows 系统下,需要先安装 npcap 才能正常捕获数据包。
常用参数
运行时可通过 -i 参数指定监听的网络接口,也可通过参数选择仅展示进程表、连接表或远程地址表。支持选择不同的流量单位,关闭 IP 反向解析,显示 DNS 查询记录等功能。输出支持机器可读的原始格式,也可开启调试日志写入文件。可通过参数控制日志输出的详细程度,也可查看工具版本和帮助信息。
适用场景
需要排查进程占用带宽情况的开发者,需要监控服务器网络连接的运维人员,需要分析流量来源的普通用户,都可以使用这个工具。它运行在终端中,资源占用低,无需图形界面即可使用。
项目状态
该项目目前处于被动维护状态,仅处理关键问题,不会新增功能。这一状态的原因是缺乏资金和人力,项目欢迎提交拉取请求,也招募长期协作者。

浙公网安备 33010602011771号