bandwhich 顯示在 Linux 和 macOS 上佔用網絡帶寬的原因


band 是一個相對較新的終端帶寬利用工具,適用於 Linux、*BSD 和 macOS,用 Rust 編寫。按進程、連接和遠程 IP/主機名顯示當前網絡利用率。

該工具的主要目的是向您展示什麼正在消耗您的帶寬。最初命名為“what”,大約三週前更名為bandwhich。

通過嗅探特定網絡接口並記錄 IP 數據包大小,可以將頻帶與 IP 數據包大小進行比較。
/proc

Linux文件系統和
lsof

在 macOS 上。此外,該工具嘗試使用反向 DNS“盡力而為”在後台將 IP 地址解析為主機名。
-n / --no-resolve

選項。

默認情況下,bandwhich 以交互模式運行,並具有三個窗格,按進程名稱顯示網絡利用率,按連接顯示利用率,按遠程地址顯示利用率。 因為bandwhich 有一個響應式終端用戶界面,所以運行bandwhich 的終端窗口必須足夠大,才能顯示這三個窗格。

帶響應式終端用戶界面的樂隊

如果您只想查看其中一個窗格,則 bandwhich 中有一個選項 – 運行
-a / --addresses

只顯示地址表,
-c / connections

僅顯示網絡連接表,或
-p / --processes

僅顯示進度圖表。

最近添加了一項功能,允許您從命令行選擇要顯示的窗格/表格。我們還在 Mac 上添加了對 IPv6 和 VPN 流量嗅探的支持。 最近還添加了對 WireGuard 接口的支持。
SPACE

鍵(這僅適用於交互模式,不適用於原始模式)。

過濾“rclone”的結果以在原始模式波段中工作(bandwhich --raw | grep rclone)

除了交互模式,bandwhich 還有一個 raw 模式(你可以用這個來
-r / --raw

可選)生成機器友好的輸出。此模式自動滾動原始輸出而不刪除先前的行。 很高興看到 %H:%M:%S 格式的常規時間戳,但未來的版本可能會添加此類功能。

相關:TShark 的終端用戶界面 (Wireshark),使用 Termshark 分析網絡流量

另請注意,默認情況下,bandwhich 顯示所有可用(活動)網絡接口的帶寬利用率。如果要指定要偵聽的特定網絡接口,請使用:
-i / --interface

該選項後跟網絡接口名稱(eth0、enp4s0 或任何調用的接口)。

有很多工具可以在命令行中顯示網絡帶寬使用情況,例如 iftop、nethogs 等。 bandwhich 在某些方面相似,但也有所不同。

例如,iftop 顯示主機接口上的帶寬使用情況,而不是使用帶寬的進程。另一方面,nethogs 是一個命令行工具,它按進程對帶寬進行分組(顯示 PID、用戶、程序、接口以及每個 PID 發送和接收的信息)。原始輸出模式,在所有情況下都非常有用。 nethogs 也沒有顯示單個連接。信息的顯示也不同。就個人而言,我真的很喜歡 bandwhich 最終用戶界面。

不管怎樣,我不是來傳教的,我是來通知的。使用最適合您需求的最喜歡的工具。

安裝帶寬

上面鏈接的 bandwhich 項目頁麵包含 Arch Linux、Nix/NixOS、Void Linux、Fedora (Copr) 和 macOS 的安裝說明。它還包括使用 Rust 包管理器 Cargo 安裝 bandwhich 的說明。這應該適用於任何 Linux 發行版。至少目前,該應用程序無法在 Microsoft Windows 上運行。

在沒有可用軟件包的 Linux 發行版上安裝 bandwhich 的最簡單方法是從 bandwhich 發布選項卡下載預編譯的二進製文件,解壓縮存檔並讓 bandwhich 可執行文件可用。你可能想把它安裝在你的某個地方
$PATH

,例子
/usr/local/bin

– 您可以使用以下命令安裝它(在您提取 bandwhich 二進製文件的文件夾中運行此命令):

sudo install bandwhich /usr/local/bin

請注意,bandwhich 在嗅探網絡數據包時需要 root 權限。運行
sudo

在 MacOS 和 Linux,或者只是 Linux 上,您可以使用以下命令為 bandwhich 二進製文件提供所需的權限,這樣您就不必運行 sudo。

sudo setcap cap_sys_ptrace,cap_dac_read_search,cap_net_raw,cap_net_admin+ep `which bandwhich`