A lightweight SmokePing alternative with optional per-target VRF and source-address binding. ICMP/TCP probes, latency distributions, packet loss and history. Single Go binary, plain JSONL storage.
Actual UI from a native development build, measuring six TCP targets in an isolated loopback lab.
Linux amd64; other builds are available in Releases.
set -e
curl -fLO https://github.com/githubflyideas/vrf-ping/releases/download/v3.3.1/vrf-ping-linux-amd64.tar.gz
curl -fLO https://github.com/githubflyideas/vrf-ping/releases/download/v3.3.1/SHA256SUMS
sha256sum --ignore-missing -c SHA256SUMS
tar -xzf vrf-ping-linux-amd64.tar.gz
./vrf-ping --listen 127.0.0.1:8517Build from source: go build -o vrf-ping .. Run the binary directly on the host. Docker is not supported.
Paths are relative to the working directory. Changes reload automatically, normally within three seconds.
targets/ping.list
1.1.1.1 ens18
1.1.1.1 eth0-zone1 vrf=zone1
8.8.8.8 ens18-source source=192.168.10.2
8.8.8.8 ens18-base vrf=base_vrf0 source=192.168.10.2
targets/tcp.list
1.1.1.1:443 eth0-zone1-https vrf=zone1 source=192.168.10.2
Format: target[:port] name [vrf=NAME] [source=LOCAL_IP].
- Names must be unique.
ens18andeth0-zone1are labels, not interface bindings. - Both options are independent and optional. Omit them for the default routing domain and automatic source selection. Replace example source IPs with local addresses valid in the selected routing domain.
- VRF requires Linux, an existing VRF and sufficient socket permissions. The program does not configure networking or silently fall back on binding failure. ICMP is currently IPv4-only.
./vrf-ping --listen 0.0.0.0:8517 user=admin passwd='YOUR_PASSWORD'Use --localhost for loopback-only access; --help lists options. Restrict access to trusted management networks.
Authenticated users can edit an existing target under Probe routing. Web writes are disabled when login is not configured.
Web settings are stored in targets/routing-options.json and override list-file routing options, including empty values. Remove a target's JSON entry to restore list-file control. Lists use source=; JSON uses source_address. Failed reloads retain the active configuration and retry.
data/ contains daily JSONL files with a default retention of 300 days. Different VRF/source contexts have separate histories. Clearing both options returns to the target's default-context history.
Back up the complete targets/ and data/ directories, stop the old process, replace the binary and retain the working directory. Configuration and data remain compatible with json-ping v3.2.0; no format migration is required.
Testing · Apache-2.0. Linux VRF behavior is tested; native VyOS images are not certified.
