update nymvpn cli docs (#6559)

* update nymvpn cli docs

* update nymvpn cli docs again
This commit is contained in:
mfahampshire
2026-03-12 16:32:39 +00:00
committed by GitHub
parent e2dd8ac743
commit fdd2c8fac2
3 changed files with 309 additions and 224 deletions
@@ -11,7 +11,7 @@ options:
--no_routing_history Display node stats without routing history
--no_verloc_metrics Display node stats without verloc metrics
-m, --markdown Display results in markdown format
-o [OUTPUT], --output [OUTPUT]
-o, --output [OUTPUT]
Save results to file (in current dir or supply with
path without filename)
```
@@ -12,8 +12,7 @@ usage: nym-node-cli install [-h] [-V] [-d BRANCH] [-v]
options:
-h, --help show this help message and exit
-V, --version show program's version number and exit
-d BRANCH, --dev BRANCH
Define github branch (default: develop)
-d, --dev BRANCH Define github branch (default: develop)
-v, --verbose Show full error tracebacks
--mode {mixnode,entry-gateway,exit-gateway}
Node mode: 'mixnode', 'entry-gateway', or 'exit-
+307 -221
View File
@@ -1,9 +1,9 @@
---
title: "NymVPN CLI: Run NymVPN from the Command Line"
description: "Install and run NymVPN from the terminal on Linux, macOS, and Windows. Requires Rust and Go. Includes mnemonic generation and testnet configuration."
description: "Install and run NymVPN from the terminal on Linux, macOS, and Windows. Includes ARM64 .deb packages, account setup, tunnel configuration, and gateway selection."
schemaType: "HowTo"
section: "Developers"
lastUpdated: "2026-02-11"
lastUpdated: "2026-03-12"
---
import { Callout } from 'nextra/components'
@@ -12,21 +12,54 @@ import { Callout } from 'nextra/components'
This is a short guide to setting up and using the `nym-vpnc` tool, which is used in conjunction with the `nym-vpnd` daemon.
<Callout type="warning" emoji="⚠️">
These binaries have superceded the older `nym-vpn-cli` binary. This still operates for the moment as it is being used in testing scenarios but will go out of date quickly.
</Callout>
Download and run instructions for the GUIs can be found [here](https://nymvpn.com/en/download/linux).
## Download & Extract Binary
Check the [release page](https://github.com/nymtech/nym-vpn-client/releases/) page for the latest release version and modify the instructions accordingly. These instructions use the latest as of the time of writing.
```sh
wget -q https://github.com/nymtech/nym-vpn-client/releases/download/nym-vpn-core-v1.1.0-beta.3/nym-vpn-core-v1.1.0-beta.3_<YOUR_OPERATING_SYSTEM>.tar.gz &&
tar -xzf nym-vpn-core-v1.1.0-beta.3_<YOUR_OPERATING_SYSTEM>.tar.gz &&
cd nym-vpn-core-v1.1.0-beta.3_<YOUR_OPERATING_SYSTEM>/ &&
wget -q https://github.com/nymtech/nym-vpn-client/releases/download/nym-vpn-core-v1.27.0-beta/nym-vpn-core-v1.27.0-beta_<YOUR_OPERATING_SYSTEM>.tar.gz &&
tar -xzf nym-vpn-core-v1.27.0-beta_<YOUR_OPERATING_SYSTEM>.tar.gz &&
cd nym-vpn-core-v1.27.0-beta_<YOUR_OPERATING_SYSTEM>/ &&
chmod u+x *
```
### Linux ARM64 (.deb)
ARM64 `.deb` packages are available for Linux distributions that support them (e.g. Ubuntu/Debian on Raspberry Pi or ARM servers). Install both the daemon and the client:
```sh
sudo dpkg -i nym-vpnd_<VERSION>_arm64.deb
sudo dpkg -i nym-vpnc_<VERSION>_arm64.deb
```
The `.deb` package installs a systemd service that starts `nym-vpnd` automatically. Verify the service is running:
```sh
service nym-vpnd status
```
You should see output similar to:
```sh
● nym-vpnd.service - nym-vpnd daemon
Loaded: loaded (/usr/lib/systemd/system/nym-vpnd.service; enabled; preset: enabled)
Active: active (running)
```
Verify the installed version with `nym-vpnc info`:
```sh
nym-vpnc info
```
```sh
nym-vpnd:
version: 1.25.0
build_timestamp (utc): 2026-03-02 16:25:31.229479864 +00:00:00
triple: aarch64-unknown-linux-gnu
platform: Ubuntu; Linux (Ubuntu 24.04); aarch64
git_commit: fce7a84e612b8d2cb48b66695cdaf023d7f9a42b
```
## Build from Source
### Prerequisites
All operating systems require both [Rust](https://www.rust-lang.org/tools/install) and [Go](https://go.dev/doc/install).
@@ -52,238 +85,291 @@ cd nym-vpn-client/
make
```
## Mnemonic Generation
Head to the mnemonic generator at [https://nym.com/account/create](https://nym.com/account/create) and obtain a mnemonic.
## Start the Daemon
If you installed via `.deb` packages, the daemon is already running as a systemd service. You can check its status with:
```sh
service nym-vpnd status
```
If you are running from pre-built binaries or a source build, start the daemon manually:
## Start the daemon
```sh
sudo ./PATH/TO/nym-vpnd
```
If you are running for the first time you will see the following:
<Callout type="info">
Leave the daemon running and run `nym-vpnc` commands in a separate terminal window.
</Callout>
## Account Setup
### Create an Account
Head to [https://nym.com/account/create](https://nym.com/account/create) and obtain a passphrase (mnemonic).
### Log In
Store your account passphrase on this device:
```sh
2024-12-11T11:03:58.202159Z INFO nym_vpnd::environment: Setting up environment by discovering the network: mainnet
2024-12-11T11:03:58.202205Z INFO nym_vpn_network_config::discovery: No discovery file found, writing default discovery file
2024-12-11T11:03:59.905505Z INFO nym_vpnd::command_interface::start: Starting command interface
2024-12-11T11:03:59.905660Z INFO nym_vpnd::service::vpn_service: Starting VPN service
2024-12-11T11:03:59.905879Z INFO nym_vpnd::command_interface::start: Starting socket listener on: /var/run/nym-vpn.sock
2024-12-11T11:03:59.906227Z INFO nym_vpn_account_controller::controller: Starting account controller
2024-12-11T11:03:59.906285Z INFO nym_vpn_account_controller::controller: Account controller: data directory: "/var/lib/nym-vpnd/mainnet"
2024-12-11T11:03:59.906313Z INFO nym_vpn_account_controller::controller: Account controller: credential mode: false
2024-12-11T11:03:59.913215Z INFO nym_vpnd::command_interface::listener: Removed previous command interface socket: "/var/run/nym-vpn.sock"
2024-12-11T11:03:59.977206Z INFO nym_vpnd::service::vpn_service: VPN service initialized successfully
2024-12-11T11:03:59.979246Z INFO nym_vpn_account_controller::controller: Account id: (unset)
2024-12-11T11:03:59.979265Z INFO nym_vpn_account_controller::controller: Device id: BZWA5MRnEvRYD8WWrH9KULdj2Q1uTssu6idjgWFae9dv
2024-12-11T11:03:59.979762Z INFO nym_vpn_account_controller::storage: Ticketbooks stored: 0
2024-12-11T11:03:59.982125Z INFO nym_vpn_account_controller::controller: Received command: UpdateAccountState
2024-12-11T11:03:59.982181Z INFO nym_vpn_account_controller::shared_state: Setting mnemonic state to NotStored
2024-12-11T11:03:59.982200Z WARN nym_vpn_account_controller::commands: Returning error: NoAccountStored
2024-12-11T11:03:59.982218Z INFO nym_vpn_account_controller::controller: Received command: UpdateDeviceState
2024-12-11T11:03:59.982230Z INFO nym_vpn_account_controller::shared_state: Setting mnemonic state to NotStored
2024-12-11T11:03:59.982240Z WARN nym_vpn_account_controller::commands: Returning error: NoAccountStored
nym-vpnc account set "<YOUR_PASSPHRASE>"
```
Ignore the `NoAccountStored` errors: these will disappear after the next step. **Leave the daemon running and run the following commands in another terminal window** or create an init file for `nym-vpnd`.
### Check Account Status
## Run VPN
We have to first store the account we have created online:
```sh
./PATH/TO/nym-vpnc store-account --mnemonic "<MNEMONIC_FROM_GENERATION_STEP>"
```
You will see this registration in the daemon logs:
Verify that the device is logged in and view account details:
```sh
2024-12-11T11:04:31.918455Z INFO grpc_vpnd: ← StoreAccount ()
2024-12-11T11:04:31.919296Z INFO nym_vpnd::service::vpn_service: Storing account
2024-12-11T11:04:31.919531Z INFO nym_vpn_store::mnemonic::on_disk: Storing mnemonic to: /var/lib/nym-vpnd/mainnet/mnemonic.json
2024-12-11T11:04:31.920327Z INFO nym_vpn_account_controller::controller: Received command: UpdateAccountState
2024-12-11T11:04:31.950720Z INFO nym_vpn_account_controller::shared_state: Setting mnemonic state to Stored { id: "n1nghj6qnmfww22tq6wyntnf709lr90qjem0uezz" }
2024-12-11T11:04:34.616249Z INFO nym_vpn_account_controller::shared_state: Setting account to Registered
2024-12-11T11:04:34.616363Z INFO nym_vpn_account_controller::shared_state: Setting account summary to AccountSummary { account: Active, subscription: Active, device_summary: DeviceSummary { active: 0, max: 10, remaining: 10 }, fair_usage: FairUsage { used_gb: None, limit_gb: None, resets_on_utc: Some("2025-01-09 15:43:37.223Z") } }
2024-12-11T11:04:34.981875Z INFO nym_vpn_account_controller::controller: Received command: RegisterDevice
2024-12-11T11:04:35.008575Z INFO register_device: nym_vpn_account_controller::shared_state: Setting device registration result to InProgress id=09876a3a
2024-12-11T11:04:35.008611Z INFO register_device: nym_vpn_account_controller::commands::register_device: Registering device: Device { identity_key: BZWA5MRnEvRYD8WWrH9KULdj2Q1uTssu6idjgWFae9dv } id=09876a3a
2024-12-11T11:04:36.765850Z INFO register_device: nym_vpn_account_controller::commands::register_device: Response: NymVpnDevice {
created_on_utc: "2024-12-11 11:04:36.432Z",
last_updated_utc: "2024-12-11 11:04:36.432Z",
device_identity_key: "BZWA5MRnEvRYD8WWrH9KULdj2Q1uTssu6idjgWFae9dv",
status: Active,
} id=09876a3a
2024-12-11T11:04:36.765998Z INFO register_device: nym_vpn_account_controller::commands::register_device: Device registered: BZWA5MRnEvRYD8WWrH9KULdj2Q1uTssu6idjgWFae9dv id=09876a3a
nym-vpnc account get
```
You can then connect `nym-vpnc` (in this case, with 2 hop wireguard mode enabled):
```sh
./PATH/TO/nym-vpnc connect --enable-two-hop
```
Which shows as such in the daemon logs:
```sh
2024-12-11T11:05:25.727784Z INFO grpc_vpnd: ← VpnConnect ()
2024-12-11T11:05:25.728107Z INFO grpc_vpnd: nym_vpnd::command_interface::listener: Got connect request: Request { metadata: MetadataMap { headers: {"te": "trailers", "content-type": "application/grpc", "user-agent": "tonic/0.11.0"} }, message: ConnectRequest { entry: None, exit: None, dns: None, disable_routing: false, enable_two_hop: true, netstack: false, disable_poisson_rate: false, disable_background_cover_traffic: false, enable_credentials_mode: false, user_agent: Some(UserAgent { application: "nym-vpnc", version: "1.1.0-beta.3 (1.1.0-beta.3)", platform: "Manjaro Linux; Linux 24.2.0 Manjaro Linux; x86_64", git_commit: "59c0714f1dac1a2d8bf77f3d2705a5c9bb57a5be (59c0714f1dac1a2d8bf77f3d2705a5c9bb57a5be)" }), min_mixnode_performance: None, min_gateway_mixnet_performance: None, min_gateway_vpn_performance: None }, extensions: Extensions }
2024-12-11T11:05:25.728225Z INFO grpc_vpnd: nym_vpnd::command_interface::connection_handler: Starting VPN
2024-12-11T11:05:25.728430Z INFO nym_vpnd::service::vpn_service: Using entry point: None
2024-12-11T11:05:25.728450Z INFO nym_vpnd::service::vpn_service: Using exit point: None
2024-12-11T11:05:25.728468Z INFO nym_vpnd::service::vpn_service: Using options: ConnectOptions { dns: None, disable_routing: false, enable_two_hop: true, netstack: false, disable_poisson_rate: false, disable_background_cover_traffic: true, enable_credentials_mode: false, min_mixnode_performance: None, min_gateway_mixnet_performance: None, min_gateway_vpn_performance: None }
2024-12-11T11:05:25.729112Z INFO nym_vpnd::service::config: Config file updated at "/etc/nym/mainnet/nym-vpnd.toml"
2024-12-11T11:05:25.729161Z INFO nym_vpnd::service::vpn_service: Using config: entry point: Random, exit point: Random
2024-12-11T11:05:25.729611Z INFO nym_vpnd::service::vpn_service: Tunnel event: Connecting
2024-12-11T11:05:25.730108Z INFO nym_gateway_directory::gateway_client: Fetching gateways from nym-vpn-api...
2024-12-11T11:05:26.387699Z INFO nym_vpn_lib::tunnel_state_machine::tunnel::gateway_selector: Found 113 entry gateways
2024-12-11T11:05:26.387744Z INFO nym_vpn_lib::tunnel_state_machine::tunnel::gateway_selector: Found 113 exit gateways
2024-12-11T11:05:26.387752Z INFO nym_gateway_directory::entries::exit_point: Selecting a random exit gateway
2024-12-11T11:05:26.387794Z INFO nym_vpn_lib::tunnel_state_machine::tunnel::gateway_selector: Using entry gateway: CcYinhLeFU8n6xs78FG6Rz3wvosGTCU2hLB1CZyfkMVe, location: IN, performance: 96%
2024-12-11T11:05:26.387814Z INFO nym_vpn_lib::tunnel_state_machine::tunnel::gateway_se
lector: Using exit gateway: Atcji22Wnfwi6nEkGC5BmgbqNPLYdhx5r4NxTqXAzFeq, location: GB, performance: 99%
2024-12-11T11:05:26.387852Z INFO nym_vpn_lib::tunnel_state_machine::tunnel::gateway_selector: Using exit router address 3MJSnmUeH54a7DJ8C4C8oZPkCjtENSfwcMLJ39zUk9Ys.59h9HKGTM4MPXVJRDfaJYFg1aoAdeBGjLHMFxQ6fBsfF@Atcji22Wnfwi6nEkGC5BmgbqNPLYdhx5r4NxTqXAzFeq
2024-12-11T11:05:26.388144Z INFO nym_vpn_lib::mixnet::connect: mixnet client poisson rate limiting: disabled
2024-12-11T11:05:26.388154Z INFO nym_vpn_lib::mixnet::connect: mixnet client background loop cover traffic stream: disabled
2024-12-11T11:05:26.388158Z INFO nym_vpn_lib::mixnet::connect: mixnet client minimum mixnode performance: 50
2024-12-11T11:05:26.388163Z INFO nym_vpn_lib::mixnet::connect: mixnet client minimum gateway performance: 50
2024-12-11T11:05:26.388434Z INFO nym_client_core::client::base_client::non_wasm_helpers: loading existing surb database
2024-12-11T11:05:26.391135Z INFO nym_client_core_surb_storage::backend::fs_backend::manager: Database migration finished!
2024-12-11T11:05:26.503966Z INFO nym_client_core::init::helpers: nym-api reports 195 valid gateways
2024-12-11T11:05:27.888231Z INFO nym_client_core::client::base_client: Starting nym client
2024-12-11T11:05:27.894924Z INFO nym_client_core::client::base_client: Starting statistics control...
2024-12-11T11:05:27.895105Z INFO nym_client_core::client::base_client: Obtaining initial network topology
2024-12-11T11:05:28.047235Z INFO nym_client_core::client::base_client: Starting topology refresher...
2024-12-11T11:05:29.024114Z INFO perform_initial_authentication: nym_gateway_client::bandwidth: remaining bandwidth: 0.00 B gateway=CcYinhLeFU8n6xs78FG6Rz3wvosGTCU2hLB1CZyfkMVe gateway_address=wss://gateway4.lunardao.net:9001/
2024-12-11T11:05:29.024375Z INFO nym_gateway_client::client: Claiming more bandwidth with existing credentials. Stop the process now if you don't want that to happen.
2024-12-11T11:05:29.024413Z WARN nym_gateway_client::client: Not enough bandwidth. Trying to get more bandwidth, this might take a while
2024-12-11T11:05:29.024430Z INFO nym_gateway_client::client: The client is running in disabled credentials mode - attempting to claim bandwidth without a credential
2024-12-11T11:05:29.171514Z INFO nym_gateway_client::client: managed to claim testnet bandwidth
2024-12-11T11:05:29.175555Z INFO nym_client_core::client::base_client: Starting received messages buffer controller...
2024-12-11T11:05:29.175648Z INFO nym_client_core::client::base_client: Starting mix traffic controller...
2024-12-11T11:05:29.175698Z INFO nym_client_core::client::base_client: Starting real traffic stream...
2024-12-11T11:05:29.176182Z INFO nym_task::manager: Starting status message listener
2024-12-11T11:05:29.189388Z INFO nym_vpn_lib::bandwidth_controller: Registering with wireguard gateway
2024-12-11T11:05:29.189449Z INFO nym_gateway_directory::gateway_client: Fetching gateway ip from nym-vpn-api...
2024-12-11T11:05:32.373749Z INFO nym_vpn_lib::bandwidth_controller: Registering with wireguard gateway
2024-12-11T11:05:32.373860Z INFO nym_gateway_directory::gateway_client: Fetching gateway ip from nym-vpn-api...
2024-12-11T11:05:36.675679Z INFO nym_vpn_lib::tunnel_state_machine::tunnel_monitor: Created entry tun device: tun0
2024-12-11T11:05:36.679774Z INFO nym_vpn_lib::tunnel_state_machine::tunnel_monitor: Created exit tun device: tun1
2024-12-11T11:05:36.681435Z INFO nym_dns: Setting DNS servers: Tunnel DNS: {1.1.1.1, 1.0.0.1, 2606:4700:4700::1111, 2606:4700:4700::1001} Non-tunnel DNS: {}
2024-12-11T11:05:36.690464Z INFO nym_vpnd::service::vpn_service: Tunnel event: Connecting WireGuard tunnel with entry 213.210.21.111:51822 and exit 45.140.167.83:51822
2024-12-11T11:05:36.690577Z INFO nym_vpnd::service::vpn_service: Tunnel event: Connected WireGuard tunnel with entry 213.210.21.111:51822 and exit 45.140.167.83:51822
2024-12-11T11:05:37.734615Z INFO nym_wg_gateway_client: Remaining wireguard bandwidth with gateway CcYinhLeFU8n6xs78FG6Rz3wvosGTCU2hLB1CZyfkMVe for today: 256000.00 MB
2024-12-11T11:05:39.240143Z INFO nym_wg_gateway_client: Remaining wireguard bandwidth with gateway Atcji22Wnfwi6nEkGC5BmgbqNPLYdhx5r4NxTqXAzFeq for today: 256000.00 MB
```
You should see the `Remaining wireguard bandwidth` decrease as you use your allowance.
There are a lot of configuration options available to you regarding how to connect:
Example output:
```sh
./PATH/TO/nym-vpnc connect --help
Connect to the Nym network
Usage: nym-vpnc connect [OPTIONS]
Options:
--entry-gateway-id <ENTRY_GATEWAY_ID>
Mixnet public ID of the entry gateway
--entry-gateway-country <ENTRY_GATEWAY_COUNTRY>
Auto-select entry gateway by country ISO
--entry-gateway-low-latency
Auto-select entry gateway by latency
--entry-gateway-random
Auto-select entry gateway randomly
--exit-router-address <EXIT_ROUTER_ADDRESS>
Mixnet recipient address
--exit-gateway-id <EXIT_GATEWAY_ID>
Mixnet public ID of the exit gateway
--exit-gateway-country <EXIT_GATEWAY_COUNTRY>
Auto-select exit gateway by country ISO
--exit-gateway-random
Auto-select exit gateway randomly
--dns <DNS>
Set the IP address of the DNS server to use
--disable-routing
Disable routing all traffic through the nym TUN device. When the flag is set,
the nym TUN device will be created, but to route traffic through it you will
need to do it manually, e.g. ping -Itun0
--enable-two-hop
Enable two-hop wireguard traffic. This means that traffic jumps directly from
entry gateway to exit gateway using Wireguard protocol
-w, --wait-until-connected
Blocks until the connection is established or failed
--netstack
Use netstack based implementation for two-hop wireguard
--enable-credentials-mode
Enable credentials mode
--min-gateway-mixnet-performance <MIN_GATEWAY_MIXNET_PERFORMANCE>
An integer between 0 and 100 representing the minimum gateway performance
required to consider a gateway for routing traffic
--min-gateway-vpn-performance <MIN_GATEWAY_VPN_PERFORMANCE>
An integer between 0 and 100 representing the minimum gateway performance
required to consider a gateway for routing traffic
-h, --help
Print help
Account identity: n1wlmrpa7ts7znz7nxvmxevaw65796cr6q6pht69
Canonical Account identity: n1wlmrpa7ts7znz7nxvmxevaw65796cr6q6pht69
Account mode: Some(Api)
Account state: Error(BandwidthExceeded { context: "SYNCING_STATE" })
```
## Command Reference
```sh
./PATH/TO/nym-vpnc --help
NymVPN commandline client
Usage: nym-vpnc [OPTIONS] <COMMAND>
Commands:
connect Connect to the Nym network
disconnect Disconnect from the Nym network
status Get the current status of the connection
info Get info about the current client. Things like version and
network details
set-network Set the network to be used. This requires a restart of the
daemon (`nym-vpnd`)
store-account Store the account recovery phrase
is-account-stored Check if the account is stored
forget-account Forget the stored account. This removes the stores recovery
phrase, device and mixnet keys, stored local credentials, etc
get-account-id Get the account ID
get-account-state Get the current account state
get-account-links Get URLs for managing your nym-vpn account
get-device-id Get the device ID
list-entry-gateways List the set of entry gateways for mixnet mode
list-exit-gateways List the set of exit gateways for mixnet mode
list-vpn-gateways List the set of entry and exit gateways for dVPN mode
list-entry-countries List the set of countries with available entry gateways for
mixnet mode
list-exit-countries List the set of countries with available exit gateways for
mixnet mode
list-vpn-countries List the set of countries with available entry and exit
gateways for dVPN mode
help Print this message or the help of the given subcommand(s)
Options:
--http Use HTTP instead of socket file for IPC with the daemon
--verbose
-h, --help Print help
-V, --version Print version
```
### Account Summary & Balance
```sh
./PATH/TO/nym-vpnd --help
NymVPN daemon
Usage: nym-vpnd [OPTIONS]
Options:
-c, --config-env-file <CONFIG_ENV_FILE>
Path pointing to an env file describing the network
--enable-http-listener
--disable-socket-listener
--run-as-service
-h, --help
Print help
-V, --version
Print version
nym-vpnc account summary
nym-vpnc account balance
```
## Default Config Directories
### Account Links
Get URLs for managing your NymVPN account:
```sh
nym-vpnc account links
```
### Forget Account
Remove the stored passphrase, device keys, and local credentials from this device:
```sh
nym-vpnc account forget
```
### Device Information
View the current device identity:
```sh
nym-vpnc device get
```
## Tunnel Configuration
Print current tunnel configuration:
```sh
nym-vpnc tunnel get
```
Enable two-hop mode (WireGuard) — traffic jumps directly from entry gateway to exit gateway:
```sh
nym-vpnc tunnel set --two-hop on
```
Enable Mixnet (5-hop) — disable two-hop to route traffic through the full mixnet for maximum privacy:
```sh
nym-vpnc tunnel set --two-hop off
```
Enable or disable IPv6:
```sh
nym-vpnc tunnel set --ipv6 on
```
Enable censorship circumvention transports (currently QUIC):
```sh
nym-vpnc tunnel set --circumvention-transports on
```
<Callout type="info">
Run `nym-vpnc tunnel set --help` for all available tunnel options including mixnet timing parameters.
</Callout>
## Gateway Configuration
Set entry and exit gateways bound to specific countries using [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country codes:
```sh
nym-vpnc gateway set --entry-country US --exit-country JP
```
Print current gateway configuration:
```sh
nym-vpnc gateway get
```
Example output:
```sh
Entry point: Country { two_letter_iso_country_code: "US" }
Exit point: Country { two_letter_iso_country_code: "JP" }
Residential exit: off
```
Only use residential exit nodes:
```sh
nym-vpnc gateway set --residential-exit on
```
### List Available Gateways
List available WireGuard gateways (use a wide terminal window for the table output):
```sh
nym-vpnc gateway list wg
```
You can also list mixnet entry and exit gateways:
```sh
nym-vpnc gateway list mixnet-entry
nym-vpnc gateway list mixnet-exit
```
## Connect & Disconnect
Connect using the settings stored in `nym-vpnd`:
```sh
nym-vpnc connect
```
Disconnect:
```sh
nym-vpnc disconnect
```
Reconnect:
```sh
nym-vpnc reconnect
```
Print the current tunnel status:
```sh
nym-vpnc status
```
Continuously stream tunnel status in real time:
```sh
nym-vpnc status --listen
```
## Ad-Block
NymVPN includes a built-in ad-blocker (Brave ad-engine). Ad-blocking is only active while the tunnel is connected.
Enable ad-block:
```sh
nym-vpnc ad-block set enabled
```
Disable ad-block:
```sh
nym-vpnc ad-block set disabled
```
<Callout type="info">
You can test ad-blocking with [adblock.turtlecute.org](https://adblock.turtlecute.org/). Some browsers cache DNS internally, so toggling ad-block on/off at runtime may not have an immediate effect — a browser restart may be needed. Use `nslookup` or `dig` to verify that domains are being blocked.
</Callout>
## DNS
View current DNS configuration:
```sh
nym-vpnc dns get
nym-vpnc dns get-default
```
Set custom DNS servers:
```sh
nym-vpnc dns set 1.1.1.1 9.9.9.9
nym-vpnc dns enable
```
Disable custom DNS and revert to defaults:
```sh
nym-vpnc dns disable
```
Clear custom DNS servers:
```sh
nym-vpnc dns clear
```
## Local Network Access
Control whether local network (LAN) traffic is allowed while the tunnel is active:
```sh
nym-vpnc lan get
nym-vpnc lan set allow
nym-vpnc lan set block
```
## SOCKS5 Proxy
NymVPN can expose a local SOCKS5 proxy:
```sh
nym-vpnc socks5 enable
nym-vpnc socks5 disable
nym-vpnc socks5 status
```
## Network
View or change the Nym network (requires a daemon restart):
```sh
nym-vpnc network get
nym-vpnc network set mainnet
```
## Diagnostic
Run connectivity diagnostics:
```sh
nym-vpnc diagnostic run
```
## Getting Help
Any `nym-vpnc` command has built-in help. Add `--help` to the end of any command to view available options:
```sh
nym-vpnc --help
nym-vpnc connect --help
nym-vpnc tunnel set --help
```
## Default Config Directories
Configurations are stored in `/etc/nym`. State stored between runs (keys, mnemonic, etc) are stored in `/var/lib/nym-vpnd`.