band 是一个相对较新的终端带宽利用工具,用于 Linux、*BSD 和 macOS,用 Rust 编写。 它按进程、连接和远程 IP/主机名显示当前网络利用率。
此工具的主要目的是显示占用您带宽的内容。 它最初被称为“what”,但它的名字大约在 3 周前被更改为 bandwhich。
band 能够通过嗅探给定的网络接口并记录 IP 数据包大小,将其与/proc
Linux 上的文件系统和lsof
在 macOS 上。 此外,该工具尝试在后台将 IP 地址解析为其主机名,“尽最大努力”使用反向 DNS; 这可以使用禁用-n / --no-resolve
选项。
默认情况下,bandwhich 以交互模式运行,它有 3 个窗格显示:按进程名称的网络利用率、按连接的利用率和按远程地址的利用率。 由于bandwhich 具有响应式终端用户界面,因此您运行bandwhich 的终端窗口必须足够大才能显示这3 个窗格 – 根据窗口宽度和/或高度,可能仅显示这些窗格中的一两个。
具有响应式终端用户界面的乐队 |
如果您只想显示这些窗格之一,bandwhich 有一个选项 – 运行它-a / --addresses
只显示地址表,-c / connections
仅显示网络连接表,或使用-p / --processes
只显示进程表。
最近添加了允许从命令行选择显示哪些窗格/表格的功能,以及对 IPv6 的支持,以及 Mac 上的 VPN 流量嗅探。 最近还添加了对 WireGuard 接口的支持,以及一个小而有用的功能,允许通过按SPACE
键(这仅适用于交互模式 – 它不适用于原始模式)。
bandwhich 以原始模式运行,过滤“rclone”的结果(bandwhich --raw | grep rclone ) |
除了交互模式,bandwhich 还有一个原始模式(使用它运行 bandwhich 与-r / --raw
选项)产生机器友好的输出。 此模式会自动滚动原始输出而不删除任何先前的行。 如果这会以 %H:%M:%S 的形式显示常规时间戳会很有用,但也许将来的版本中会添加这样的功能。
相关:使用Termshark分析网络流量,TShark的终端用户界面(Wireshark)
还值得注意的是,默认情况下,bandwhich 显示所有可用(活动)网络接口的带宽利用率。 如果要指定要侦听的特定网络接口,请使用-i / --interface
选项后跟网络接口名称,例如 eth0、enp4s0 或任何调用的接口。
有很多工具可以在命令行上显示网络带宽利用率,包括iftop、nethogs等。 bandwhich 在某些方面是相似的,但它也做不同的事情。
例如,iftop 显示主机接口上的带宽使用情况,不显示正在使用带宽的进程。 另一方面,nethogs 是一个命令行工具,它对每个进程的带宽进行分组(它显示了 PID、用户、程序、接口和每个 PID 发送/接收的信息),与 bandwhich 相比,它显示的信息更相似,但是nethogs 缺少在各种情况下都非常有用的原始输出模式。 此外,nethogs 不显示单个连接。 信息的呈现方式也不同,我个人非常喜欢bandwhich终端用户界面。
无论如何,我不是来传教的,而是来通知的。 使用您最喜欢且最适合您需要的工具。
安装bandwhich
上面链接的 bandwhich 项目页面有 Arch Linux、Nix/NixOS、Void Linux 的安装说明, Fedora (Copr) 和 macOS。 还有使用 Cargo 安装 bandwhich 的说明,Rust 包管理器,应该适用于任何 Linux 发行版。 该应用程序不能在 Microsoft Windows 上运行,至少目前是这样。
在没有可用软件包的 Linux 发行版上安装 bandwhich 的最简单方法是从 bandwhich 发布选项卡下载预编译的二进制文件,然后解压缩存档以便您可以使用 bandwhich 可执行文件。 你可能想把它安装在你的某个地方$PATH
, 例如/usr/local/bin
– 您可以使用以下命令安装它(在您提取了 bandwhich 二进制文件的文件夹中运行此命令):
sudo install bandwhich /usr/local/bin