diff --git a/documentation/docs/components/outputs/command-outputs/node-api-check-query-help.md b/documentation/docs/components/outputs/command-outputs/node-api-check-query-help.md index bfa068ddb0..999f3d4a6f 100644 --- a/documentation/docs/components/outputs/command-outputs/node-api-check-query-help.md +++ b/documentation/docs/components/outputs/command-outputs/node-api-check-query-help.md @@ -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) ``` diff --git a/documentation/docs/components/outputs/command-outputs/nym-node-cli-install-help.md b/documentation/docs/components/outputs/command-outputs/nym-node-cli-install-help.md index 70baf6f736..ddc7c867b3 100644 --- a/documentation/docs/components/outputs/command-outputs/nym-node-cli-install-help.md +++ b/documentation/docs/components/outputs/command-outputs/nym-node-cli-install-help.md @@ -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- diff --git a/documentation/docs/pages/developers/nymvpncli.mdx b/documentation/docs/pages/developers/nymvpncli.mdx index 660c7fd8e6..f161a2f100 100644 --- a/documentation/docs/pages/developers/nymvpncli.mdx +++ b/documentation/docs/pages/developers/nymvpncli.mdx @@ -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. - - 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. - - 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_.tar.gz && -tar -xzf nym-vpn-core-v1.1.0-beta.3_.tar.gz && -cd nym-vpn-core-v1.1.0-beta.3_/ && +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_.tar.gz && +tar -xzf nym-vpn-core-v1.27.0-beta_.tar.gz && +cd nym-vpn-core-v1.27.0-beta_/ && 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__arm64.deb +sudo dpkg -i nym-vpnc__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: + + Leave the daemon running and run `nym-vpnc` commands in a separate terminal window. + + +## 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 "" ``` -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 "" -``` - -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 - Mixnet public ID of the entry gateway - --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 - Mixnet recipient address - --exit-gateway-id - Mixnet public ID of the exit gateway - --exit-gateway-country - Auto-select exit gateway by country ISO - --exit-gateway-random - Auto-select exit gateway randomly - --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 - An integer between 0 and 100 representing the minimum gateway performance - required to consider a gateway for routing traffic - --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] - -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 - 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 +``` + + + Run `nym-vpnc tunnel set --help` for all available tunnel options including mixnet timing parameters. + + +## 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 +``` + + + 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. + + +## 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`.