@fredlackey/devutils 0.0.14 → 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1052 @@
1
+ # Installing NordVPN
2
+
3
+ ## Overview
4
+
5
+ NordVPN is a commercial Virtual Private Network (VPN) service that encrypts your internet traffic and masks your IP address. It provides secure, private access to the internet with features including:
6
+
7
+ - **Privacy Protection**: Encrypts all network traffic using AES-256 encryption
8
+ - **Global Server Network**: Access to 6,000+ servers in 111 countries
9
+ - **Kill Switch**: Automatically blocks internet access if VPN connection drops
10
+ - **Threat Protection**: Blocks ads, trackers, and malware (varies by platform)
11
+ - **Meshnet**: Create encrypted networks between your devices for remote access
12
+ - **NordLynx Protocol**: WireGuard-based protocol for high-speed connections
13
+
14
+ NordVPN provides both GUI applications (for desktop platforms) and CLI tools (for servers and headless systems).
15
+
16
+ ## Prerequisites
17
+
18
+ Before installing NordVPN on any platform, ensure:
19
+
20
+ 1. **Internet connectivity** - Required to download packages and authenticate with NordVPN
21
+ 2. **Administrative privileges** - Required for system-wide installation and network configuration
22
+ 3. **A NordVPN subscription** - Active account required; sign up at https://nordvpn.com
23
+ 4. **curl or wget** - Required on Linux platforms for the installation script
24
+
25
+ ## Dependencies
26
+
27
+ ### macOS (Homebrew)
28
+ - **Required:**
29
+ - `Homebrew` - Install via `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`
30
+ - **Optional:** None
31
+ - **Auto-installed:** None
32
+
33
+ ### Ubuntu (APT/Snap)
34
+ - **Required:**
35
+ - `curl` or `wget` - Install via `sudo apt-get install -y curl` (one is typically pre-installed)
36
+ - **Optional:**
37
+ - `snapd` - For Snap installation method
38
+ - **Auto-installed:**
39
+ - GPG signing key (added by install script)
40
+ - APT repository configuration (added by install script)
41
+ - `nordvpn` package dependencies (handled by APT)
42
+
43
+ ### Raspberry Pi OS (APT/Snap)
44
+ - **Required:**
45
+ - `curl` or `wget` - Install via `sudo apt-get install -y curl`
46
+ - **Optional:** None
47
+ - **Auto-installed:**
48
+ - GPG signing key (added by install script)
49
+ - APT repository configuration (added by install script)
50
+ - `nordvpn` package dependencies (handled by APT)
51
+
52
+ ### Amazon Linux (DNF/YUM)
53
+ - **Required:**
54
+ - `curl` or `wget` - Install via `sudo dnf install -y curl` or `sudo yum install -y curl`
55
+ - **Optional:** None
56
+ - **Auto-installed:**
57
+ - Repository configuration (added by install script)
58
+ - `nordvpn` package dependencies (handled by DNF/YUM)
59
+ - systemd service configuration
60
+
61
+ ### Windows (Chocolatey/winget)
62
+ - **Required:**
63
+ - `Chocolatey` - Install via PowerShell: `Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))`
64
+ - **Optional:**
65
+ - `winget` - Alternative package manager (pre-installed on Windows 11 and recent Windows 10)
66
+ - **Auto-installed:**
67
+ - `.NET Framework 4.8` (dependency)
68
+ - `Visual C++ Redistributable` (dependency)
69
+
70
+ ### Git Bash (Manual/Portable)
71
+ - **Required:**
72
+ - NordVPN installed on Windows host (see Windows section)
73
+ - Git Bash inherits Windows PATH for the `nordvpn` command
74
+ - **Optional:** None
75
+ - **Auto-installed:** None
76
+
77
+ ## Platform-Specific Installation
78
+
79
+ ### macOS (Homebrew)
80
+
81
+ #### Prerequisites
82
+
83
+ - macOS 12.0 (Monterey) or later
84
+ - Homebrew package manager installed
85
+ - Apple Silicon (M1/M2/M3/M4) or Intel processor
86
+
87
+ If Homebrew is not installed, install it first:
88
+
89
+ ```bash
90
+ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
91
+ ```
92
+
93
+ #### Installation Steps
94
+
95
+ Run the following command to install NordVPN:
96
+
97
+ ```bash
98
+ brew install --cask --quiet nordvpn
99
+ ```
100
+
101
+ The `--cask` flag specifies this is a GUI application. The `--quiet` flag suppresses non-essential output for cleaner automation logs.
102
+
103
+ After installation, launch NordVPN from your Applications folder or Spotlight to complete the setup.
104
+
105
+ #### Verification
106
+
107
+ Confirm the application is installed:
108
+
109
+ ```bash
110
+ ls /Applications/NordVPN.app
111
+ ```
112
+
113
+ Expected output:
114
+
115
+ ```
116
+ /Applications/NordVPN.app
117
+ ```
118
+
119
+ Check the installed version via Homebrew:
120
+
121
+ ```bash
122
+ brew info --cask nordvpn | head -1
123
+ ```
124
+
125
+ #### Troubleshooting
126
+
127
+ **Problem**: `Error: Cask 'nordvpn' is not installed`
128
+
129
+ **Solution**: The Homebrew cask path may not be configured. Update Homebrew and retry:
130
+
131
+ ```bash
132
+ brew update
133
+ brew install --cask --quiet nordvpn
134
+ ```
135
+
136
+ **Problem**: Application requires macOS version newer than installed
137
+
138
+ **Solution**: NordVPN requires macOS 12 (Monterey) or later. Upgrade your operating system or download an older version directly from NordVPN's website.
139
+
140
+ **Problem**: "NordVPN can't be opened because Apple cannot check it for malicious software"
141
+
142
+ **Solution**: This is a Gatekeeper warning. Allow the app in System Preferences > Security & Privacy > General, or run:
143
+
144
+ ```bash
145
+ xattr -cr /Applications/NordVPN.app
146
+ ```
147
+
148
+ ---
149
+
150
+ ### Ubuntu/Debian (APT)
151
+
152
+ #### Prerequisites
153
+
154
+ - Ubuntu 20.04 (Focal) or later, or Debian 11 (Bullseye) or later (64-bit)
155
+ - sudo privileges
156
+ - curl or wget installed
157
+
158
+ If curl is not installed:
159
+
160
+ ```bash
161
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
162
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y curl
163
+ ```
164
+
165
+ #### Installation Steps
166
+
167
+ **Step 1: Run the official installation script**
168
+
169
+ NordVPN provides an automated installation script that detects your distribution and configures the repository. The `-n` flag enables non-interactive mode:
170
+
171
+ ```bash
172
+ sh <(curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh) -n
173
+ ```
174
+
175
+ If curl is unavailable, use wget instead:
176
+
177
+ ```bash
178
+ sh <(wget -qO - https://downloads.nordcdn.com/apps/linux/install.sh) -n
179
+ ```
180
+
181
+ This script automatically:
182
+ - Detects your Ubuntu/Debian version
183
+ - Adds NordVPN's GPG signing key
184
+ - Configures the APT repository
185
+ - Installs the nordvpn package
186
+ - Enables and starts the nordvpnd service
187
+
188
+ **Step 2: Add your user to the nordvpn group**
189
+
190
+ This grants permission to use the NordVPN CLI without sudo:
191
+
192
+ ```bash
193
+ sudo usermod -aG nordvpn $USER
194
+ ```
195
+
196
+ **Important**: You must log out and log back in (or reboot) for the group change to take effect.
197
+
198
+ **Step 3: Log in to NordVPN**
199
+
200
+ After logging back in, authenticate with your NordVPN account using a token:
201
+
202
+ 1. Log into your Nord Account at https://my.nordaccount.com
203
+ 2. Go to NordVPN > Advanced Settings > Access token
204
+ 3. Generate a new access token (choose non-expiring for servers)
205
+ 4. Copy the token and run:
206
+
207
+ ```bash
208
+ nordvpn login --token YOUR_TOKEN_HERE
209
+ ```
210
+
211
+ **Step 4: Connect to VPN**
212
+
213
+ ```bash
214
+ nordvpn connect
215
+ ```
216
+
217
+ This connects to the fastest available server. The connection persists until you disconnect.
218
+
219
+ #### Alternative: Snap Installation
220
+
221
+ If you prefer Snap packages:
222
+
223
+ ```bash
224
+ sudo snap install nordvpn
225
+ ```
226
+
227
+ After installation, add your user to the nordvpn group and log in as described above.
228
+
229
+ #### Verification
230
+
231
+ Confirm the installation succeeded:
232
+
233
+ ```bash
234
+ nordvpn --version
235
+ ```
236
+
237
+ Expected output (version numbers may vary):
238
+
239
+ ```
240
+ NordVPN Version 3.19.2
241
+ ```
242
+
243
+ Check connection status:
244
+
245
+ ```bash
246
+ nordvpn status
247
+ ```
248
+
249
+ #### Troubleshooting
250
+
251
+ **Problem**: `Whoops! Permission denied accessing /run/nordvpn/nordvpnd.sock`
252
+
253
+ **Solution**: Your user is not in the nordvpn group or the session needs refresh:
254
+
255
+ ```bash
256
+ sudo usermod -aG nordvpn $USER
257
+ ```
258
+
259
+ Then log out and log back in, or reboot.
260
+
261
+ **Problem**: `nordvpn: command not found` after installation
262
+
263
+ **Solution**: Open a new terminal session. If still not found, the package may not have installed correctly. Reinstall:
264
+
265
+ ```bash
266
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --reinstall nordvpn
267
+ ```
268
+
269
+ **Problem**: Cannot connect - "You are not logged in"
270
+
271
+ **Solution**: Generate an access token from your Nord Account and log in:
272
+
273
+ ```bash
274
+ nordvpn login --token YOUR_TOKEN_HERE
275
+ ```
276
+
277
+ **Problem**: The installation script prompts for confirmation
278
+
279
+ **Solution**: Ensure you are using the `-n` flag for non-interactive mode:
280
+
281
+ ```bash
282
+ sh <(curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh) -n
283
+ ```
284
+
285
+ ---
286
+
287
+ ### Raspberry Pi OS (APT)
288
+
289
+ #### Prerequisites
290
+
291
+ - Raspberry Pi OS (32-bit or 64-bit) - Bullseye, Bookworm, or newer
292
+ - Raspberry Pi 3, 4, 5, or Zero 2 W (ARM processor)
293
+ - sudo privileges
294
+ - curl or wget installed
295
+
296
+ Verify your architecture:
297
+
298
+ ```bash
299
+ uname -m
300
+ ```
301
+
302
+ - `aarch64` = 64-bit (uses Debian arm64 packages)
303
+ - `armv7l` = 32-bit (uses Raspbian-specific packages)
304
+
305
+ If curl is not installed:
306
+
307
+ ```bash
308
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
309
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y curl
310
+ ```
311
+
312
+ #### Installation Steps
313
+
314
+ **Step 1: Run the official installation script**
315
+
316
+ ```bash
317
+ sh <(curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh) -n
318
+ ```
319
+
320
+ The script automatically detects Raspberry Pi OS and configures the appropriate repository for your architecture.
321
+
322
+ **Note**: NordVPN officially supports Raspberry Pi OS but with limited ARM64 support. The CLI version works well on Raspberry Pi devices.
323
+
324
+ **Step 2: Add your user to the nordvpn group**
325
+
326
+ ```bash
327
+ sudo usermod -aG nordvpn $USER
328
+ ```
329
+
330
+ Log out and log back in for the group change to take effect.
331
+
332
+ **Step 3: Log in to NordVPN**
333
+
334
+ Generate an access token from your Nord Account (https://my.nordaccount.com > NordVPN > Advanced Settings > Access token), then:
335
+
336
+ ```bash
337
+ nordvpn login --token YOUR_TOKEN_HERE
338
+ ```
339
+
340
+ **Step 4: Connect to VPN**
341
+
342
+ ```bash
343
+ nordvpn connect
344
+ ```
345
+
346
+ #### Alternative: Manual OpenVPN Setup
347
+
348
+ If the NordVPN native client does not work on your Raspberry Pi, use OpenVPN directly:
349
+
350
+ ```bash
351
+ # Install OpenVPN
352
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
353
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y openvpn
354
+
355
+ # Download NordVPN configuration files
356
+ cd /etc/openvpn
357
+ sudo wget -q https://downloads.nordcdn.com/configs/archives/servers/ovpn.zip
358
+
359
+ # Install unzip if needed
360
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y unzip
361
+
362
+ # Extract configuration files
363
+ sudo unzip -q ovpn.zip
364
+ sudo rm ovpn.zip
365
+
366
+ # Connect using a configuration file (get credentials from Nord Account > Manual setup)
367
+ cd /etc/openvpn/ovpn_udp/
368
+ sudo openvpn us2957.nordvpn.com.udp.ovpn
369
+ ```
370
+
371
+ **Note**: When prompted, enter your NordVPN service credentials (found in Nord Account > Manual setup > Service credentials). These are different from your account login.
372
+
373
+ #### Verification
374
+
375
+ Confirm the installation succeeded:
376
+
377
+ ```bash
378
+ nordvpn --version
379
+ ```
380
+
381
+ Check connection status:
382
+
383
+ ```bash
384
+ nordvpn status
385
+ ```
386
+
387
+ Verify your IP has changed:
388
+
389
+ ```bash
390
+ curl -s https://api.ipify.org && echo
391
+ ```
392
+
393
+ #### Troubleshooting
394
+
395
+ **Problem**: Installation fails with ARM architecture errors
396
+
397
+ **Solution**: NordVPN has limited ARM64 support. Use the OpenVPN manual setup method described above instead.
398
+
399
+ **Problem**: Very slow VPN performance on Raspberry Pi
400
+
401
+ **Solution**: Enable the NordLynx protocol for better performance:
402
+
403
+ ```bash
404
+ nordvpn set technology nordlynx
405
+ nordvpn connect
406
+ ```
407
+
408
+ **Problem**: VPN disconnects after system sleep or reboot
409
+
410
+ **Solution**: Enable auto-connect:
411
+
412
+ ```bash
413
+ nordvpn set autoconnect on
414
+ ```
415
+
416
+ ---
417
+
418
+ ### Amazon Linux/RHEL (DNF/YUM)
419
+
420
+ #### Prerequisites
421
+
422
+ - Amazon Linux 2023, Amazon Linux 2, Fedora 32+, RHEL 8/9, or CentOS 8/9
423
+ - sudo privileges
424
+ - curl or wget installed
425
+
426
+ **Note**: Amazon Linux 2023 and Fedora use DNF. Amazon Linux 2, RHEL 7, and CentOS 7 use YUM.
427
+
428
+ #### Installation Steps
429
+
430
+ **Step 1: Run the official installation script**
431
+
432
+ ```bash
433
+ sh <(curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh) -n
434
+ ```
435
+
436
+ The script automatically detects your distribution and configures the appropriate repository.
437
+
438
+ **Step 2: Add your user to the nordvpn group**
439
+
440
+ ```bash
441
+ sudo usermod -aG nordvpn $USER
442
+ ```
443
+
444
+ Log out and log back in for the group change to take effect.
445
+
446
+ **Step 3: Log in to NordVPN**
447
+
448
+ Generate an access token from your Nord Account, then:
449
+
450
+ ```bash
451
+ nordvpn login --token YOUR_TOKEN_HERE
452
+ ```
453
+
454
+ **Step 4: Connect to VPN**
455
+
456
+ ```bash
457
+ nordvpn connect
458
+ ```
459
+
460
+ #### Alternative: Manual Repository Setup
461
+
462
+ **For Amazon Linux 2023 / Fedora (DNF):**
463
+
464
+ ```bash
465
+ # Add NordVPN repository
466
+ sudo dnf config-manager --add-repo https://repo.nordvpn.com/yum/nordvpn/centos/x86_64/
467
+
468
+ # Import GPG key
469
+ sudo rpm --import https://repo.nordvpn.com/gpg/nordvpn_public.asc
470
+
471
+ # Install NordVPN
472
+ sudo dnf install -y nordvpn
473
+
474
+ # Enable and start the service
475
+ sudo systemctl enable --now nordvpnd
476
+
477
+ # Add user to nordvpn group
478
+ sudo usermod -aG nordvpn $USER
479
+ ```
480
+
481
+ **For Amazon Linux 2 (YUM):**
482
+
483
+ ```bash
484
+ # Install yum-utils if not present
485
+ sudo yum install -y yum-utils
486
+
487
+ # Add NordVPN repository
488
+ sudo yum-config-manager --add-repo https://repo.nordvpn.com/yum/nordvpn/centos/x86_64/
489
+
490
+ # Import GPG key
491
+ sudo rpm --import https://repo.nordvpn.com/gpg/nordvpn_public.asc
492
+
493
+ # Install NordVPN
494
+ sudo yum install -y nordvpn
495
+
496
+ # Enable and start the service
497
+ sudo systemctl enable --now nordvpnd
498
+
499
+ # Add user to nordvpn group
500
+ sudo usermod -aG nordvpn $USER
501
+ ```
502
+
503
+ #### Verification
504
+
505
+ Confirm the installation succeeded:
506
+
507
+ ```bash
508
+ nordvpn --version
509
+ ```
510
+
511
+ Check connection status:
512
+
513
+ ```bash
514
+ nordvpn status
515
+ ```
516
+
517
+ Verify the service is running:
518
+
519
+ ```bash
520
+ sudo systemctl status nordvpnd
521
+ ```
522
+
523
+ #### Troubleshooting
524
+
525
+ **Problem**: "No package nordvpn available"
526
+
527
+ **Solution**: The repository was not added correctly. Verify and re-add:
528
+
529
+ ```bash
530
+ ls /etc/yum.repos.d/ | grep -i nord
531
+ ```
532
+
533
+ If missing, manually add the repository as shown above.
534
+
535
+ **Problem**: GPG key verification fails
536
+
537
+ **Solution**: Import the key manually:
538
+
539
+ ```bash
540
+ sudo rpm --import https://repo.nordvpn.com/gpg/nordvpn_public.asc
541
+ ```
542
+
543
+ **Problem**: SELinux blocking NordVPN
544
+
545
+ **Solution**: Allow NordVPN through SELinux or set to permissive temporarily:
546
+
547
+ ```bash
548
+ sudo setenforce 0
549
+ ```
550
+
551
+ For a permanent fix, create an SELinux policy module.
552
+
553
+ ---
554
+
555
+ ### Windows (Chocolatey)
556
+
557
+ #### Prerequisites
558
+
559
+ - Windows 10 or later, or Windows Server 2016 or later (64-bit)
560
+ - Administrator PowerShell or Command Prompt
561
+ - Chocolatey package manager installed
562
+
563
+ If Chocolatey is not installed, install it first by running this command in an Administrator PowerShell:
564
+
565
+ ```powershell
566
+ Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
567
+ ```
568
+
569
+ **Important**: A system reboot is required after installing Chocolatey's dependencies (.NET Framework 4.8 and Visual C++ Redistributable) before NordVPN will install successfully.
570
+
571
+ #### Installation Steps
572
+
573
+ Run the following command in an Administrator PowerShell or Command Prompt:
574
+
575
+ ```powershell
576
+ choco install nordvpn -y
577
+ ```
578
+
579
+ The `-y` flag automatically confirms all prompts, enabling fully non-interactive installation.
580
+
581
+ After installation:
582
+ 1. Reboot if this is the first install (to complete dependency setup)
583
+ 2. Launch NordVPN from the Start Menu
584
+ 3. Log in with your NordVPN account
585
+
586
+ #### Alternative: winget Installation
587
+
588
+ If you prefer winget over Chocolatey:
589
+
590
+ ```powershell
591
+ winget install --id NordVPN.NordVPN --silent --accept-package-agreements --accept-source-agreements
592
+ ```
593
+
594
+ #### Command-Line Usage
595
+
596
+ After logging in via the GUI, you can use NordVPN from the command line:
597
+
598
+ ```powershell
599
+ # Navigate to NordVPN directory
600
+ cd "C:\Program Files\NordVPN"
601
+
602
+ # Connect to VPN
603
+ nordvpn -c
604
+
605
+ # Connect to a specific country
606
+ nordvpn -c -g "United States"
607
+
608
+ # Connect to a specific server
609
+ nordvpn -c -n "United States #3710"
610
+
611
+ # Disconnect
612
+ nordvpn -d
613
+ ```
614
+
615
+ #### Verification
616
+
617
+ Open a new Command Prompt or PowerShell window after installation:
618
+
619
+ ```powershell
620
+ cd "C:\Program Files\NordVPN"
621
+ nordvpn -c
622
+ ```
623
+
624
+ If the command connects successfully, the installation is complete.
625
+
626
+ Check the system tray for the NordVPN icon to confirm the service is running.
627
+
628
+ #### Troubleshooting
629
+
630
+ **Problem**: Installation fails with dependency errors
631
+
632
+ **Solution**: Install dependencies first, reboot, then install NordVPN:
633
+
634
+ ```powershell
635
+ choco install dotnetfx vcredist140 -y
636
+ # Reboot the system
637
+ choco install nordvpn -y
638
+ ```
639
+
640
+ **Problem**: `nordvpn` command not found
641
+
642
+ **Solution**: The NordVPN directory is not in PATH. Navigate to it directly:
643
+
644
+ ```powershell
645
+ cd "C:\Program Files\NordVPN"
646
+ .\nordvpn -c
647
+ ```
648
+
649
+ Or add to PATH permanently via System Properties > Environment Variables.
650
+
651
+ **Problem**: NordVPN service not running
652
+
653
+ **Solution**: Start the service:
654
+
655
+ ```powershell
656
+ Start-Service NordVPN
657
+ ```
658
+
659
+ Or launch the NordVPN application from the Start Menu.
660
+
661
+ ---
662
+
663
+ ### WSL (Ubuntu)
664
+
665
+ #### Prerequisites
666
+
667
+ - Windows 10 version 2004 or later, or Windows 11
668
+ - WSL 2 installed and configured (WSL 1 is not supported)
669
+ - Ubuntu distribution installed in WSL
670
+
671
+ Verify you are on WSL 2:
672
+
673
+ ```powershell
674
+ wsl -l -v
675
+ ```
676
+
677
+ The VERSION column should show `2` for your Ubuntu distribution.
678
+
679
+ **Important Recommendation**: For most users, install NordVPN on the Windows host only (see Windows section). WSL 2 shares the Windows network stack, so the VPN protection applies to WSL traffic automatically. Running NordVPN in both Windows and WSL simultaneously causes conflicts.
680
+
681
+ #### Installation Steps
682
+
683
+ If you specifically need NordVPN running inside WSL (advanced use cases only), follow these steps.
684
+
685
+ **Step 1: Install NordVPN in WSL**
686
+
687
+ Open your WSL Ubuntu terminal:
688
+
689
+ ```bash
690
+ sh <(curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh) -n
691
+ ```
692
+
693
+ **Step 2: Add your user to the nordvpn group**
694
+
695
+ ```bash
696
+ sudo usermod -aG nordvpn $USER
697
+ ```
698
+
699
+ Exit and restart WSL for group changes to take effect.
700
+
701
+ **Step 3: Start the NordVPN daemon manually**
702
+
703
+ WSL does not use systemd by default, so start the daemon manually:
704
+
705
+ ```bash
706
+ sudo nordvpnd &
707
+ sleep 3
708
+ ```
709
+
710
+ **Step 4: Log in and connect**
711
+
712
+ ```bash
713
+ nordvpn login --token YOUR_TOKEN_HERE
714
+ nordvpn connect
715
+ ```
716
+
717
+ #### Starting NordVPN Automatically in WSL
718
+
719
+ Add this to your `~/.bashrc` to start NordVPN when you open a WSL terminal:
720
+
721
+ ```bash
722
+ # Start nordvpnd if not already running
723
+ if ! pgrep -x nordvpnd > /dev/null; then
724
+ sudo nordvpnd > /dev/null 2>&1 &
725
+ sleep 2
726
+ fi
727
+ ```
728
+
729
+ Configure passwordless sudo for nordvpnd (to avoid password prompts):
730
+
731
+ ```bash
732
+ echo "$USER ALL=(ALL) NOPASSWD: /usr/sbin/nordvpnd" | sudo tee /etc/sudoers.d/nordvpnd
733
+ sudo chmod 0440 /etc/sudoers.d/nordvpnd
734
+ ```
735
+
736
+ #### Verification
737
+
738
+ Confirm the installation succeeded:
739
+
740
+ ```bash
741
+ nordvpn --version
742
+ ```
743
+
744
+ Check connection status:
745
+
746
+ ```bash
747
+ nordvpn status
748
+ ```
749
+
750
+ #### Troubleshooting
751
+
752
+ **Problem**: "Permission denied accessing /run/nordvpn/nordvpnd.sock"
753
+
754
+ **Solution**: The daemon is not running. Start it:
755
+
756
+ ```bash
757
+ sudo nordvpnd &
758
+ sleep 3
759
+ ```
760
+
761
+ **Problem**: DNS resolution broken after connecting
762
+
763
+ **Solution**: Disable Tailscale-style DNS management:
764
+
765
+ ```bash
766
+ nordvpn set dns off
767
+ ```
768
+
769
+ Or manually restore `/etc/resolv.conf`:
770
+
771
+ ```bash
772
+ sudo rm /etc/resolv.conf
773
+ echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
774
+ ```
775
+
776
+ **Problem**: VPN only works for WSL, not Windows
777
+
778
+ **Solution**: This is expected when running NordVPN in WSL only. For full system protection, install NordVPN on the Windows host instead.
779
+
780
+ ---
781
+
782
+ ### Git Bash (Windows Installation)
783
+
784
+ #### Prerequisites
785
+
786
+ - Windows 10 or Windows 11 (64-bit)
787
+ - Git Bash installed (comes with Git for Windows)
788
+ - NordVPN installed on Windows (see Windows section)
789
+
790
+ **Note**: Git Bash on Windows does not require a separate NordVPN installation. Git Bash inherits the Windows PATH, so once NordVPN is installed on Windows, you can use it from Git Bash.
791
+
792
+ #### Installation Steps
793
+
794
+ 1. Install NordVPN on Windows using Chocolatey (see Windows section):
795
+
796
+ ```bash
797
+ # Run from Administrator PowerShell or Command Prompt
798
+ choco install nordvpn -y
799
+ ```
800
+
801
+ 2. Launch NordVPN from the Windows Start Menu and log in
802
+
803
+ 3. Open Git Bash - the NordVPN CLI will be accessible by navigating to its directory
804
+
805
+ #### Using NordVPN from Git Bash
806
+
807
+ ```bash
808
+ # Navigate to NordVPN installation directory
809
+ cd "/c/Program Files/NordVPN"
810
+
811
+ # Check connection status (informal test)
812
+ ./nordvpn -c
813
+
814
+ # Connect to VPN
815
+ ./nordvpn -c -g "United States"
816
+
817
+ # Disconnect
818
+ ./nordvpn -d
819
+ ```
820
+
821
+ #### Verification
822
+
823
+ In Git Bash, confirm NordVPN is accessible:
824
+
825
+ ```bash
826
+ cd "/c/Program Files/NordVPN"
827
+ ./nordvpn -c
828
+ ```
829
+
830
+ If the command initiates a connection, the setup is complete.
831
+
832
+ #### Troubleshooting
833
+
834
+ **Problem**: `nordvpn: command not found` in Git Bash
835
+
836
+ **Solution**: Navigate to the installation directory:
837
+
838
+ ```bash
839
+ cd "/c/Program Files/NordVPN"
840
+ ./nordvpn -c
841
+ ```
842
+
843
+ Or add NordVPN to your PATH in `~/.bashrc`:
844
+
845
+ ```bash
846
+ echo 'export PATH="$PATH:/c/Program Files/NordVPN"' >> ~/.bashrc
847
+ source ~/.bashrc
848
+ ```
849
+
850
+ **Problem**: Commands hang or timeout
851
+
852
+ **Solution**: Ensure the NordVPN Windows service is running. Check the system tray for the NordVPN icon. If not present, launch NordVPN from the Start Menu.
853
+
854
+ **Problem**: Interactive prompts fail in Git Bash's mintty terminal
855
+
856
+ **Solution**: Use winpty for interactive commands:
857
+
858
+ ```bash
859
+ winpty "/c/Program Files/NordVPN/nordvpn" -c
860
+ ```
861
+
862
+ ---
863
+
864
+ ## Post-Installation Configuration
865
+
866
+ After installing NordVPN on any platform, consider these common configurations.
867
+
868
+ ### Enabling Auto-Connect
869
+
870
+ Configure NordVPN to connect automatically on system startup:
871
+
872
+ ```bash
873
+ nordvpn set autoconnect on
874
+ ```
875
+
876
+ To auto-connect to a specific country:
877
+
878
+ ```bash
879
+ nordvpn set autoconnect on us
880
+ ```
881
+
882
+ ### Enabling Kill Switch
883
+
884
+ The Kill Switch blocks all internet traffic if the VPN connection drops:
885
+
886
+ ```bash
887
+ nordvpn set killswitch on
888
+ ```
889
+
890
+ ### Changing Protocol
891
+
892
+ Switch between OpenVPN and NordLynx (WireGuard-based) protocols:
893
+
894
+ ```bash
895
+ # Use NordLynx for better performance
896
+ nordvpn set technology nordlynx
897
+
898
+ # Use OpenVPN for compatibility
899
+ nordvpn set technology openvpn
900
+ ```
901
+
902
+ ### Enabling Threat Protection Lite
903
+
904
+ Block ads, trackers, and malicious websites:
905
+
906
+ ```bash
907
+ nordvpn set threatprotectionlite on
908
+ ```
909
+
910
+ ### Token-Based Login for Automation
911
+
912
+ For headless servers and automated scripts, use access tokens instead of interactive login:
913
+
914
+ 1. Generate a token at https://my.nordaccount.com (NordVPN > Advanced Settings > Access token)
915
+ 2. Choose "Non-expiring token" for servers (enable MFA for security)
916
+ 3. Login with the token:
917
+
918
+ ```bash
919
+ nordvpn login --token YOUR_TOKEN_HERE
920
+ ```
921
+
922
+ To preserve the token when logging out (for reuse):
923
+
924
+ ```bash
925
+ nordvpn logout --persist-token
926
+ ```
927
+
928
+ ### Useful CLI Commands
929
+
930
+ ```bash
931
+ # Connect to the fastest server
932
+ nordvpn connect
933
+
934
+ # Connect to a specific country
935
+ nordvpn connect us
936
+
937
+ # Connect to a specific city
938
+ nordvpn connect us new_york
939
+
940
+ # Connect to a P2P-optimized server
941
+ nordvpn connect p2p
942
+
943
+ # Disconnect
944
+ nordvpn disconnect
945
+
946
+ # Check current status
947
+ nordvpn status
948
+
949
+ # View current settings
950
+ nordvpn settings
951
+
952
+ # List available countries
953
+ nordvpn countries
954
+
955
+ # List cities in a country
956
+ nordvpn cities us
957
+ ```
958
+
959
+ ---
960
+
961
+ ## Common Issues
962
+
963
+ ### Issue: Permission Denied on Linux
964
+
965
+ **Symptoms**: `Whoops! Permission denied accessing /run/nordvpn/nordvpnd.sock`
966
+
967
+ **Solution**: Add your user to the nordvpn group and restart your session:
968
+
969
+ ```bash
970
+ sudo usermod -aG nordvpn $USER
971
+ # Log out and log back in, or reboot
972
+ ```
973
+
974
+ ### Issue: Login Fails or Loops
975
+
976
+ **Symptoms**: `nordvpn login` opens browser but authentication fails
977
+
978
+ **Solution**: Use token-based login instead of browser-based login:
979
+
980
+ 1. Generate an access token at https://my.nordaccount.com
981
+ 2. Run: `nordvpn login --token YOUR_TOKEN_HERE`
982
+
983
+ ### Issue: Cannot Connect to Servers
984
+
985
+ **Symptoms**: Connection attempts timeout or fail
986
+
987
+ **Solutions**:
988
+
989
+ - Verify your subscription is active at https://my.nordaccount.com
990
+ - Try a different server: `nordvpn connect us`
991
+ - Switch protocols: `nordvpn set technology openvpn`
992
+ - Check if firewall is blocking NordVPN
993
+
994
+ ### Issue: DNS Leaks
995
+
996
+ **Symptoms**: Websites can detect your real location despite VPN
997
+
998
+ **Solutions**:
999
+
1000
+ - Enable Threat Protection Lite: `nordvpn set threatprotectionlite on`
1001
+ - On Windows with OpenVPN, add `block-outside-dns` to config files
1002
+ - Verify with a DNS leak test at https://nordvpn.com/dns-leak-test/
1003
+
1004
+ ### Issue: Slow Connection Speeds
1005
+
1006
+ **Symptoms**: VPN significantly reduces internet speed
1007
+
1008
+ **Solutions**:
1009
+
1010
+ - Switch to NordLynx protocol: `nordvpn set technology nordlynx`
1011
+ - Connect to a closer server
1012
+ - Check for network congestion
1013
+
1014
+ ### Issue: Service Not Running on Linux
1015
+
1016
+ **Symptoms**: Commands fail with daemon connection errors
1017
+
1018
+ **Solutions**:
1019
+
1020
+ ```bash
1021
+ # Check service status
1022
+ sudo systemctl status nordvpnd
1023
+
1024
+ # Start the service
1025
+ sudo systemctl start nordvpnd
1026
+
1027
+ # Enable on boot
1028
+ sudo systemctl enable nordvpnd
1029
+ ```
1030
+
1031
+ ### Issue: Conflicting VPN Software
1032
+
1033
+ **Symptoms**: NordVPN fails to connect when other VPN software is installed
1034
+
1035
+ **Solution**: Disable or uninstall other VPN clients before using NordVPN. NordVPN should not run simultaneously with other VPN software.
1036
+
1037
+ ---
1038
+
1039
+ ## References
1040
+
1041
+ - [NordVPN Official Website](https://nordvpn.com)
1042
+ - [NordVPN Download Page](https://nordvpn.com/download/)
1043
+ - [Installing NordVPN on Linux](https://support.nordvpn.com/hc/en-us/articles/20196094470929-Installing-NordVPN-on-Linux-distributions)
1044
+ - [NordVPN Linux Client (GitHub)](https://github.com/NordSecurity/nordvpn-linux)
1045
+ - [How to Login Without GUI on Linux](https://support.nordvpn.com/hc/en-us/articles/20226600447633-How-to-log-in-to-NordVPN-on-Linux-devices-without-a-GUI)
1046
+ - [NordVPN Windows CLI Usage](https://support.nordvpn.com/hc/en-us/articles/19919384880145-Connect-to-NordVPN-Windows-with-Command-Prompt)
1047
+ - [NordVPN Configuration Files](https://nordvpn.com/blog/nordvpn-config-files/)
1048
+ - [NordVPN Raspberry Pi Setup](https://support.nordvpn.com/hc/en-us/articles/20455204080913-How-to-configure-a-Raspberry-Pi)
1049
+ - [NordVPN Homebrew Cask](https://formulae.brew.sh/cask/nordvpn)
1050
+ - [NordVPN Chocolatey Package](https://community.chocolatey.org/packages/nordvpn)
1051
+ - [NordVPN Snap Package](https://snapcraft.io/nordvpn)
1052
+ - [NordVPN winget Package](https://winget.run/pkg/NordVPN/NordVPN)