Ping, packet loss, and download/upload tests from your terminal.
Run a quick network check, or keep Netband running to catch intermittent problems. Get readable results in your terminal and a CSV record you can compare later. Built for Linux, from your workstation to a Raspberry Pi.
- Test now: one ping round or one NDT7 bandwidth test, then exit.
- Catch intermittent problems: continuous pings, scheduled bandwidth tests, and tests triggered by degraded connectivity.
- See latency under load: continuous monitoring keeps pinging during bandwidth tests and labels the active phase.
For Linux x86_64 and aarch64 with glibc 2.35+ (requirements),
install a checksum-verified release to ~/.local/bin:
curl --proto '=https' --proto-redir '=https' --tlsv1.2 -LsSf \
https://github.com/gregl83/netband/releases/latest/download/netband-installer.sh | sh
export PATH="$HOME/.local/bin:$PATH"Requires curl, tar, and sha256sum. Prefer to compile it yourself?
See installation and source builds.
No configuration file or background service is needed.
Check latency and packet loss:
netband once pingThis sends one probe to each default target: 1.1.1.1, 8.8.8.8, and 9.9.9.9.
To check a specific address:
netband --ping-target 1.1.1.1 once pingPing needs permission to open ICMP sockets. If you get a permission error, follow the ICMP setup instructions.
Check download and upload bandwidth:
Review privacy and M-Lab's acceptable-use and privacy policies, then explicitly accept:
netband --accept-mlab-policy once bandwidthNetband finds an NDT7 server through M-Lab and runs download followed by upload. Netband enforces a four-start UTC daily cap for M-Lab, shared by manual and scheduled tests through scheduler state. Spacing and cooldowns also apply. You can instead use an operator-supplied NDT7 server.
Illustrative terminal results (one ping target shown):
2026-09-17T12:00:00.000Z ping interface=default-route target=1.1.1.1 outcome=success rtt_ms=12.5 loss_pct=0
2026-09-17T12:01:00.000Z bandwidth interface=default-route provider=mlab server_name=ndt.example.net outcome=success download=94.2 Mbps upload=20.1 Mbps
Both commands exit when finished and save a unique CSV under
~/.local/share/netband/journals/once/ (or $XDG_DATA_HOME/netband/journals/once/).
The full results path is printed to stderr at startup. Use --output netband.csv
to save in your current directory instead.
Leave ping monitoring running in your terminal:
netband --no-bandwidth runAfter accepting the provider policies, enable scheduled and health-triggered bandwidth tests:
netband --accept-mlab-policy runResults rotate daily under the same data directory in journals/run/. Netband
prints the output directory and each new CSV path to stderr. Stop with Ctrl-C;
completed measurements are flushed before exit.
For unattended monitoring, see systemd setup.
CSV is the durable record. For scripts, select JSONL output and keep logs separate:
netband --console jsonl once ping >events.jsonl 2>netband.logJSONL is a best-effort live view; use CSV when you need the complete journal. See quick tests and output for console modes and troubleshooting, or inspect the example records.
See NDT7 measurement and validation for rate definitions and the v1 comparison with M-Lab's Go client.
- Configuration and providers: targets, interfaces, TOML, and all CLI options.
- Data format: field definitions and parsing examples.
- Documentation index: scheduling, service operation, and research use.
- Issues and feedback: report a problem or suggest an improvement.