README.md
June 28, 2026 · View on GitHub
🏎 NBping
NBping is a Ping tool developed in Rust. It supports concurrent Ping for multiple addresses, visual chart display, real-time data updates, and other features.
📢 NBPing (formerly Nping)
Important
Renaming Notice
This project has been officially renamed from Nping to NBPing.
Please update your bookmarks, dependencies, and installation scripts accordingly. The old name is now deprecated and will no longer be maintained.
nbping --help
Exporter Mode
Now NBping supports exporting ping metrics to Prometheus format, so you can visualize them with tools like Grafana.
nbping exporter www.baidu.com www.google.com -i 1 -p 9100
Then, you can scrape the metrics from http://localhost:9100/metrics
You can use Grafana to visualize the data:
Installation
MacOS Homebrew
brew install nbping
nbping --help
Feature:
- TCP Ping support
- IP range Ping support
Roadmap:
- Optimize UI interface, add more dynamic effects.
Usage
nbping www.baidu.com www.google.com www.apple.com www.sina.com -c 20 -i 2
nbping --help
🏎 NBping mean NB Ping, A Ping Tool in Rust with Real-Time Data and Visualizations
Usage: nbping [OPTIONS] <TARGET>...
Arguments:
<TARGET>... target IP address or hostname to ping
Options:
--config <CONFIG> Path to a YAML config file (CLI flags override its values)
-c, --count <COUNT> Number of pings to send [default: 0 = unlimited]
-i, --interval <INTERVAL> Interval in seconds between pings [default: 0]
-6, --force_ipv6 Force using IPv6 (config-only field can also enable this)
-m, --multiple <MULTIPLE> Specify the maximum number of target addresses, Only works on one target address [default: 0]
-v, --view-type <VIEW_TYPE> Initial view mode: graph/table/point/sparkline (switch at runtime with 1-4 / Tab) [default: graph]
-o, --output <OUTPUT> Output file to save ping results
-h, --help Print help
-V, --version Print version
Exporter Usage
nbping exporter www.baidu.com www.google.com -i 1 -p 9100
./nbping exporter --help
Exporter mode for monitoring
Usage: nbping exporter [OPTIONS] [TARGET]...
Arguments:
[TARGET]... target IP addresses or hostnames to ping
Options:
--config <CONFIG> Path to a YAML config file (CLI flags override its values)
-i, --interval <INTERVAL> Interval in seconds between pings [default: 1]
-p, --port <PORT> Prometheus metrics HTTP port [default: 9090]
-6, --force_ipv6 Force using IPv6 (config-only field can also enable this)
-h, --help Print help
Configuration file
Instead of passing everything on the command line, you can start NBping from a
YAML file with --config:
nbping --config nbping.yaml
The file mirrors the command-line flags. See nbping.example.yaml:
mode: tui # tui | exporter (default: tui)
targets:
- google.com
- github.com
- apple.com
- baidu.com
- 1.1.1.1
count: 0 # 0 = unlimited
interval: 1 # seconds
force_ipv6: false
multiple: 0 # tui mode only
view_type: graph # graph | table | point | sparkline (tui mode only)
# output: results.log # tui mode only
port: 9090 # exporter mode only
Notes:
- Precedence: command-line flags override the config file, which overrides
built-in defaults (
CLI flag > YAML config > default). For example,nbping --config nbping.yaml -i 1forces a 1-second interval regardless of the file. - Mode: the
modefield selects TUI or exporter mode when no subcommand is given. Running the explicitnbping exporter ...subcommand always uses exporter mode. force_ipv6: the-6flag can only turn IPv6 on; to disable IPv6 while a config enables it, setforce_ipv6: falsein the file.- Unknown keys are rejected, so typos surface as errors at startup.
Acknowledgements
Thanks to these people for their feedback and suggestions for 🏎NBping!
| ThatFlower | zx4i | snail2sky | shenshouer | vnt-dev | qingyuan0o0 | Onlywzr
Thanks to these self-media for reposting and paying attention to 🏎NBping!
| 阮一峰的网络日志 |Rust 中文社区 | 公众号:奇妙的linux世界 | 公众号:IT运维技术圈 | X:@geekbb | 公众号:一飞开源 | 公众号: 开源日记