Nym Gateway Probe
Nym Node operators running Gateway functionality are already familiar with the monitoring tool Harbourmaster.nymtech.net (opens in a new tab). Under the hood of Nym Harbourmaster runs iterations of nym-gateway-probe
doing various checks and displaying the results on the interface. Operators don't have to rely on the probe ran by Nym and wait for the data to refresh. With nym-gateway-probe
everyone can check any Gateway's networking status from their own computer at any time. In one command the client queries data from:
Preparation
We recommend to have install all the prerequisites needed to build nym-node
from source including latest Rust Toolchain (opens in a new tab).
Installation
nym-gateway-probe
source code is in nym-vpn-client
(opens in a new tab) repository. The client needs to be build from source.
- Clone the repository:
git clone https://github.com/nymtech/nym-vpn-client.git
- Build
nym-gateway-probe
:
cd nym-vpn-client/nym-vpn-core
cargo build --release -p nym-gateway-probe
Running the Client
To list all commands and options run the binary with --help
command:
./target/release/nym-gateway-probe --help
- Output:
Usage: nym-gateway-probe [OPTIONS]
Options:
-c, --config-env-file <CONFIG_ENV_FILE> Path pointing to an env file describing the network
-g, --gateway <GATEWAY>
-n, --no-log
-h, --help Print help
-V, --version Print version
To run the client, simply add a flag --gateway
with a targeted gateway identity key.
./target/release/nym-gateway-probe --gateway <GATEWAY_IDENTITY_KEY>
For any nym-node --mode exit-gateway
the aim is to have this outcome:
{
"gateway": "<GATEWAY_IDENTITY_KEY>",
"outcome": {
"as_entry": {
"can_connect": true,
"can_route": true
},
"as_exit": {
"can_connect": true,
"can_route_ip_v4": true,
"can_route_ip_external_v4": true,
"can_route_ip_v6": true,
"can_route_ip_external_v6": true
},
"wg": {
"can_register": true,
"can_handshake": true,
"can_resolve_dns": true,
"ping_hosts_performance": 1.0,
"ping_ips_performance": 1.0
}
}
}
If your Gateway is blacklisted, the probe will not work.
If you don't provide a --gateway
flag it will pick a random one to test.