bandwhich 终端带宽监控工具从源码编译到安装排错一次跑通【免费下载链接】bandwhichTerminal bandwidth utilization tool项目地址: https://gitcode.com/gh_mirrors/ba/bandwhichbandwhich 是一款终端带宽监控工具能按进程、连接、远端 IP/主机名三个维度显示实时上下行速率。很多人卡住的地方不在功能本身而在安装环节Rust 工具链版本不够、系统抓包依赖没装、Windows 下链接失败。把这篇文章走完你会得到一台可运行的 bandwhich并学会按版本要求处理cargo编译报错。30 秒装好的三条路赶时间的话按你的环境选一条装完用bandwhich --version验证应打印版本号而非报错# macOSApple Silicon / Intel 均适用 brew install bandwhich # Arch Linux sudo pacman -S bandwhich # 其他环境的通用兜底从 crates.io 源码构建安装 cargo install bandwhich各发行版的包管理器指令都列在 INSTALL.md 里需要 sudo 的系统记得加sudo。先判断你的安装路线再动手路线怎么选看两个条件发行版是否有现成包、你的 Rust 环境是什么水平。发行版官方源里已经有 bandwhichArch、Fedora COPR、Void、Nix、FreeBSD 等→ 用包管理器一条命令还省去权限配置的坑。没有现成包或你就是想拿到最新代码 →cargo install bandwhich或直接 clone 仓库自己cargo build --release。没有 Rust 环境又想省事 → 优先找包管理器路线把 Rust 工具链的事交给打包者。判断 Rust 环境只需一条命令rustc --version记下版本号后面处理版本兼容时要和项目的最低要求MSRV对照。从源码编译各平台步骤Linux先用包管理器装上抓包依赖缺了它会在链接阶段报错# Debian / Ubuntu sudo apt install libpcap-dev # Fedora sudo dnf install libpcap-devel然后克隆仓库并编译git clone https://gitcode.com/gh_mirrors/ba/bandwhich cd bandwhich cargo build --releaserelease profile 开了 fat LTO见 Cargo.toml 的[profile.release]首次编译会比平时慢一些属正常。产物在target/release/bandwhich运行./target/release/bandwhich --version确认输出版本号即可。macOSxcode-select --install # 没有 Xcode 命令行工具时执行一次 brew install libpcap git clone https://gitcode.com/gh_mirrors/ba/bandwhich cd bandwhich cargo build --releaseWindows前置条件Visual Studio Build Tools提供 MSVC 链接器 安装 Npcap 运行时抓包必需。[build-dependencies]里配置了 Windows 专用逻辑build.rs 会在编译时自动从 npcap.com 下载 Npcap SDK 并缓存到target/目录——所以首次编译需要外网连通。git clone https://gitcode.com/gh_mirrors/ba/bandwhich cd bandwhich cargo build --release完成后产物是target\release\bandwhich.exe。首次运行请用管理员身份否则抓不到包。Rust 版本不够或跨版本怎么配项目用rust-version字段声明最低 Rust 版本MSRV这是所有版本兼容问题的基准线。查当前代码要求的版本cargo metadata --format-version 1 | grep -o rust_version:[^,]*会看到类似rust_version:1.88.0的输出。注意 MSRV 是随版本上移的主分支当前要求 1.88.0而已发布的 0.23.1 只需 1.74各版本的具体门槛可翻 CHANGELOG.md 中的 Bump MSRV 记录。两条应对路径按需选一条路径一升级 Rust。本机 Rust 低于要求时rustup update stable跑完再rustc --version确认已升到 1.88.0 以上然后重新cargo build --release。路径二锁定旧版本。环境里必须保留旧 Rust 时编译已发布的旧版本而不是主分支cargo install bandwhich --version 0.23.1或者用 rustup 给某个版本做目录级绑定不影响全局工具链rustup toolchain install 1.88.0 rustup override set 1.88.0override只对当前目录生效离开目录自动恢复适合多项目混用的场景。依赖解析冲突。老版本的Cargo.lock偶尔会让 cargo 报版本不匹配。两个轻量处理按顺序试cargo update --minimal # 只升到满足约束的最低依赖版本比全量 update 保守 rm Cargo.lock # 锁文件仍不对时删掉让 cargo 重新解析删完Cargo.lock不影响仓库其他内容编译时会重新生成。编译与运行报错速查现象原因处理Insufficient permissions to listen on network interface抓包需要特权用sudo运行Linux 单机可改用setcap见下文error: package bandwhich vX.Y.Z cannot be built because it requires rustc 1.88.0 or newer本机 Rust 低于 MSRVrustup update stable或改装 0.23.1链接阶段cannot find -lpcap或libpcap相关报错缺抓包系统库按上文 Linux/macOS 步骤安装 libpcapWindows 下链接失败 / 找不到Packet.lib缺 VS Build Tools或 build.rs 下载 Npcap SDK 失败安装 Build Tools确认能访问 npcap.com装好 Npcap 运行时Failed to get stdout: ... use the --raw flag把输出重定向到了管道非 raw 模式需要终端加-r/--raw输出为机器可读文本sudo bandwhich报 command not foundsudo 默认不保留用户PATH改用sudo $(command -v bandwhich)远端主机名一列空白反向 DNS 尽力而为失败不报错属正常现象可加--no-resolve跳过解析装完之后权限配置与入口位置Linux 上推荐用 capabilities 一次性授权之后无需每次 sudo多用户、需要隔离他人流量的机器请继续用sudo bandwhichsudo setcap cap_sys_ptrace,cap_dac_read_search,cap_net_raw,cap_net_adminep $(command -v bandwhich) bandwhich # 普通用户直接运行这四个 capability 分别解决读 /proc 找进程和抓包两类权限问题详细说明见 README.md 的 Post install 一节。跑起来之后q退出空格暂停Tab切换表格布局-r切换 raw 模式--show-dns显示 DNS 查询。源码层面抓包与流量统计在 src/network/核心是sniffer.rs和utilization.rs各平台的接口/进程枚举在 src/os/终端界面在 src/display/。想改行为或提 PR先看 CONTRIBUTING.md。工具链就绪、命令跑通现在sudo bandwhich打开它看看是哪个进程在吃你的带宽。【免费下载链接】bandwhichTerminal bandwidth utilization tool项目地址: https://gitcode.com/gh_mirrors/ba/bandwhich创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考