- Overview
- Installation
- Login & Account Management
- Basic Connection Commands
- Countries, Cities & Groups (Server Discovery)
- Server Groups (P2P, Double VPN, etc.)
- Status & Diagnostics
- Settings & Configuration
- Protocols & Technology (NordLynx / OpenVPN)
- Kill Switch, Firewall & LAN Access
- Whitelisting (Split Tunneling via CLI)
- Automation & Scripting
- systemd / Service Management
- Troubleshooting & Recovery
- Power‑User Tips
NordVPN provides a first‑class CLI that allows:
- Fast connections without GUI overhead
- Scriptable VPN workflows
- Server selection via constraints, not raw server lists
⚠️ Important design note: The CLI does not expose individual server lists (hostnames, IPs, load %). You choose filters (country, city, group), and NordVPN selects the optimal server.
sh <(curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh)Verify installation:
nordvpn --versionSupported on most modern Linux distributions.
brew install nordvpnStart NordVPN service:
brew services start nordvpnVerify:
nordvpn --versionnordvpn login- Opens browser for authentication
- Returns control to terminal after success
nordvpn accountnordvpn logoutnordvpn connectnordvpn connect us
nordvpn connect india
nordvpn connect germanynordvpn connect united_states new_yorkCity names use underscores, not spaces.
nordvpn disconnectnordvpn countriesnordvpn cities united_statesnordvpn groupsExample output:
Standard VPN servers
P2P
Double VPN
Onion Over VPN
Dedicated IP
❌ There is no command like
nordvpn servers.
nordvpn connect p2pnordvpn connect double_vpnnordvpn connect onion_over_vpnnordvpn connect dedicated_ipnordvpn connect us --group p2pnordvpn statusDisplays:
- Connection state
- Server hostname
- Country / city
- VPN IP address
- Protocol
- Transfer statistics
nordvpn settingsnordvpn set autoconnect onnordvpn set autoconnect on usnordvpn set autoconnect offnordvpn set technology nordlynxnordvpn set technology openvpnRecommendation: NordLynx for performance unless blocked by network policy.
nordvpn set killswitch onnordvpn set killswitch offnordvpn set lan-discovery onnordvpn set firewall offnordvpn whitelist add port 22
nordvpn whitelist add port 8080nordvpn whitelist add subnet 192.168.1.0/24nordvpn whitelist remove allUseful for home servers, SSH access, databases, or internal services.
#!/bin/bash
nordvpn connect us
sleep 10
curl ifconfig.meCOUNTRIES=(us uk germany japan)
for c in "${COUNTRIES[@]}"; do
nordvpn connect "$c"
sleep 30
donesudo systemctl enable nordvpndsudo systemctl start nordvpndsudo systemctl restart nordvpndsudo systemctl restart nordvpnd # Linux
brew services restart nordvpn # macOSps aux | grep nordvpnnordvpn logout
nordvpn logincurl ifconfig.me- Prefer NordLynx for best latency and throughput
- Use city + group filters instead of chasing server names
- Enable LAN discovery for local development clusters
- Whitelist SSH and service ports for uninterrupted access
- Combine with
tmuxfor fast region switching
NordVPN CLI is constraint‑based, not server‑list‑based.
You choose what you want (country, city, purpose). NordVPN chooses how it’s delivered (server, IP, routing).
This model scales better, performs better, and is ideal for automation.