带宽被谁吃光?终端用 bandwhich 快速定位指南
带宽被谁吃光?终端用 bandwhich 快速定位指南
【免费下载链接】bandwhichTerminal bandwidth utilization tool项目地址: https://gitcode.com/gh_mirrors/ba/bandwhich
半夜,服务器出口带宽被顶满,你翻接口统计却查不到是谁干的。打开终端敲一句 bandwhich,这个免费的命令行工具能帮你在几秒内看到进程级带宽去向。
一句话讲清:bandwhich 到底是什么
bandwhich 是一个终端带宽监控工具:它嗅探网卡上的数据包,把流量对到具体进程,在屏幕上持续更新进程、连接、远端地址三张表。 跑起来后你会看到顶部一行Total Rate (Up / Down)总速率,下面三张表;只要有流量,各行的速率就开始滚动。
30秒跑起来:安装与第一条命令
macOS 或装了 Homebrew 的 Linux,一行装完:
brew install bandwhich终端会打印下载进度,最后停在 bandwhich 的版本号上。
Linux 还需要抓包权限,用 sudo 启动:
sudo bandwhich屏幕先是三张空表,总速率 0.00B;哪个进程开始传数据,对应那行的速率立刻跳起来。
其他系统的安装命令,见仓库 INSTALL.md。
4个真实场景下它怎么帮你
场景一:服务器带宽打满,揪出元凶进程
痛点:接口曲线一条直线,ss只能看到端口,不知道端口归哪个进程。 动作:运行sudo bandwhich,看第一张表 "Utilization by process name"。 结果:速率最高那行就是元凶,进程名、PID、连接数、上下行速率一行摆全,不用再对着端口反查。
场景二:陌生 IP 流量大,反查它是什么服务
痛点:远端地址表里冒出一个大流量 IP,不知道背后是什么服务。 动作:不用操作,bandwhich 会在后台做反向 DNS 解析。 结果:IP 逐渐变成主机名,你能一眼判断它像云厂商、CDN,还是陌生来源。
场景三:下载变慢,定位到哪条流在占
痛点:后台明明有东西在下载,说不出是哪条流。 动作:看最下面那张 "Utilization by connection" 表。 结果:每行一条连接,带本地端口、远端 IP:端口、协议和上下行速率,速率最大的那条就是占带宽的流。
场景四:嫌三张表太满,只留一个维度
痛点:窗口小,三张表挤在一起,只想看一个维度。 动作:启动时加参数,比如-p只看进程表,-s顺带显示 DNS 查询。 结果:屏幕立刻清爽,只剩你关心的那一块。
选型参考:它和同类工具怎么选
| 工具 | 能看到什么 | 进程归属 |
|---|---|---|
| iftop | 每条连接的上下行 | 否 |
| nload | 只有接口总量 | 否 |
| ss / netstat | 连接 + PID | 无速率 |
| bandwhich | 进程 + 连接 + 远端地址三表 | 有,速率持续更新 |
结论:你只想回答"哪个进程在吃带宽",直接选 bandwhich;只看接口总量,nload 更轻。
新手最容易卡住的3个问题
Q:Linux 直接跑bandwhich报Operation not permitted?A:抓包需要提权。加sudo前缀即可,或提前给二进制授上 4 个 capability 再裸跑。
Q:三张表一直是 0.00B,什么都没有?A:它默认监听默认接口。多网卡机器用-i指定,例如bandwhich -i eth0。
Q:远端地址表为什么只有 IP,没有主机名?A:反向 DNS 是后台尽力而为,会随时间补全;不在意就加-n跳过。
别再记功能,打开终端装好之后,敲一句sudo bandwhich,三张表会直接告诉你今晚是谁在吃带宽。
【免费下载链接】bandwhichTerminal bandwidth utilization tool项目地址: https://gitcode.com/gh_mirrors/ba/bandwhich
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考