#update #networking #interface #monitoring #monitor #statistics #real-time

bin+lib ifstat-rs

报告网络接口统计信息的工具

5 个稳定版本

3.0.0 2024 年 8 月 3 日
2.0.0 2024 年 8 月 1 日
1.9.999 2024 年 7 月 31 日

#1100 in 网络编程

Download history 406/week @ 2024-07-29 22/week @ 2024-08-05

每月 428 次下载

MIT 许可证

35KB
599

ifstat-rs

ifstat-rs 是一个简单高效的 Rust 工具,用于报告网络接口统计信息,类似于 ifstat

tests builds

功能

  • 实时监控:每秒解析并显示每个网络接口的接收和发送字节数。
  • 接口灵活性:监控特定接口、所有接口或仅回环接口。
  • 可配置更新:设置更新之间的延迟并限制更新次数。
  • 具有友好名称的接口列表:在支持的情况下显示接口的友好名称(目前为 Windows)。

支持的平台

  • Linux:完全支持,从 /proc/net/dev 获取实时网络统计信息。
  • Windows:自 v2.0.0 版本起支持。
  • macOS:自 v3.0.0 版本起支持。

安装

要安装 ifstat-rs,请确保您已安装 Rust 和 Cargo。选择选项 A 或 B

A: 从 crates.io 发布版本

cargo install ifstat-rs

B: 从开发 Git 仓库安装

cargo build --release
sudo cp target/release/ifstat-rs /usr/local/bin/
ifstat-rs --version

用法

选项

ifstat-rs

  • -a:监控所有接口。
  • -l:包括回环接口。
  • -z:隐藏计数器保持为零的不活动接口。
  • <interfaces>:指定要监控的接口,用逗号分隔(例如,-,lo)。
  • --list-interfaces:列出所有接口,在支持的情况下显示友好名称(目前为 Windows)。
  • --first-measurement <seconds>:设置首次测量的延迟(默认与 --delay 相同)。
  • <delay>:更新之间的延迟(秒)(默认为 1 秒)。
  • <count>:停止前的更新次数(默认为无限)。

默认情况下,ifstat-rs显示除“lo”之外的所有接口。

示例

默认用法

$ ifstat-rs
       eth0
 KB/s in  KB/s out
 8724.76    225.89
10356.68    259.95
13281.06    294.90

监控特定接口

# Linux/Mac-style
ifstat-rs -i eth0,wlan1
# Windows-style
ifstat-rs -i "\DEVICE\TCPIP_{66963456-C690-4E4E-940B-E7C915B9A07D},\DEVICE\TCPIP_{97D92124-3AC3-45B5-8634-F6547F9676CE}"

查找接口列表,(在Windows上:存在时带有适配器名称)

$ ifstat-rs --list-interfaces
 3 adapters:
\DEVICE\TCPIP_{66963456-C690-4E4E-940B-E7C915B9A07D} Ethernet
\DEVICE\TCPIP_{3CE6ABDA-3928-11EF-BFD9-806E6F6E6963} Loopback Pseudo-Interface 1
\DEVICE\TCPIP_{97D92124-3AC3-45B5-8634-F6547F9676CE} vEthernet (nat)
16 interfaces:
[...]
\DEVICE\TCPIP_{97D92124-3AC3-45B5-8634-F6547F9676CE} (vEthernet (nat))
\DEVICE\TCPIP_{66963456-C690-4E4E-940B-E7C915B9A07D} (Ethernet)
\DEVICE\TCPIP_{34DB3D4C-C1FC-4CDF-8BB2-9A7B1D40D640}
\DEVICE\TCPIP_{3CE6ABDA-3928-11EF-BFD9-806E6F6E6963} (Loopback Pseudo-Interface 1)
[...]

监控所有接口,每秒测量一次,持续10秒

ifstat-rs -a 1 10

包括回环接口

ifstat-rs -l

指定延迟和计数 - 首次测量后1秒,然后每60秒一次

ifstat-rs -a --first-measurement 1 60

开发

使用以下命令运行工具

cargo run -- -a

许可证

本项目采用MIT许可证 - 详细内容请参阅LICENSE文件。

“本项目是在ChatGPT的帮助下生成的。请注意,ChatGPT可能会犯错误。仔细审查和核实由工具提供的信息非常重要。”这是它所说的。只是让您知道。因为我想也许并不是所有的错误都是我的责任。

依赖项

~7–48MB
~746K SLoC