@fredlackey/devutils 0.0.18 → 0.1.0

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.
Files changed (447) hide show
  1. package/README.md +214 -141
  2. package/package.json +8 -83
  3. package/src/api/loader.js +229 -0
  4. package/src/api/registry.json +62 -0
  5. package/src/cli.js +293 -60
  6. package/src/commands/ai/index.js +16 -0
  7. package/src/commands/ai/launch.js +112 -0
  8. package/src/commands/ai/list.js +54 -0
  9. package/src/commands/ai/resume.js +70 -0
  10. package/src/commands/ai/sessions.js +121 -0
  11. package/src/commands/ai/set.js +131 -0
  12. package/src/commands/ai/show.js +74 -0
  13. package/src/commands/ai/tools.js +46 -0
  14. package/src/commands/alias/add.js +93 -0
  15. package/src/commands/alias/helpers.js +107 -0
  16. package/src/commands/alias/index.js +14 -0
  17. package/src/commands/alias/list.js +55 -0
  18. package/src/commands/alias/remove.js +62 -0
  19. package/src/commands/alias/sync.js +109 -0
  20. package/src/commands/api/disable.js +73 -0
  21. package/src/commands/api/enable.js +148 -0
  22. package/src/commands/api/index.js +15 -0
  23. package/src/commands/api/list.js +66 -0
  24. package/src/commands/api/update.js +87 -0
  25. package/src/commands/auth/index.js +15 -0
  26. package/src/commands/auth/list.js +49 -0
  27. package/src/commands/auth/login.js +384 -0
  28. package/src/commands/auth/logout.js +111 -0
  29. package/src/commands/auth/refresh.js +184 -0
  30. package/src/commands/auth/services.js +169 -0
  31. package/src/commands/auth/status.js +104 -0
  32. package/src/commands/config/export.js +224 -0
  33. package/src/commands/config/get.js +52 -0
  34. package/src/commands/config/import.js +308 -0
  35. package/src/commands/config/index.js +17 -0
  36. package/src/commands/config/init.js +143 -0
  37. package/src/commands/config/reset.js +57 -0
  38. package/src/commands/config/set.js +93 -0
  39. package/src/commands/config/show.js +35 -0
  40. package/src/commands/help.js +338 -0
  41. package/src/commands/identity/add.js +133 -0
  42. package/src/commands/identity/index.js +17 -0
  43. package/src/commands/identity/link.js +76 -0
  44. package/src/commands/identity/list.js +48 -0
  45. package/src/commands/identity/remove.js +72 -0
  46. package/src/commands/identity/show.js +65 -0
  47. package/src/commands/identity/sync.js +172 -0
  48. package/src/commands/identity/unlink.js +57 -0
  49. package/src/commands/ignore/add.js +165 -0
  50. package/src/commands/ignore/index.js +14 -0
  51. package/src/commands/ignore/list.js +89 -0
  52. package/src/commands/ignore/markers.js +43 -0
  53. package/src/commands/ignore/remove.js +164 -0
  54. package/src/commands/ignore/show.js +169 -0
  55. package/src/commands/machine/detect.js +122 -0
  56. package/src/commands/machine/index.js +14 -0
  57. package/src/commands/machine/list.js +74 -0
  58. package/src/commands/machine/set.js +106 -0
  59. package/src/commands/machine/show.js +35 -0
  60. package/src/commands/schema.js +152 -0
  61. package/src/commands/search/collections.js +134 -0
  62. package/src/commands/search/get.js +71 -0
  63. package/src/commands/search/index-cmd.js +54 -0
  64. package/src/commands/search/index.js +21 -0
  65. package/src/commands/search/keyword.js +60 -0
  66. package/src/commands/search/qmd.js +70 -0
  67. package/src/commands/search/query.js +64 -0
  68. package/src/commands/search/semantic.js +62 -0
  69. package/src/commands/search/status.js +46 -0
  70. package/src/commands/status.js +224 -171
  71. package/src/commands/tools/check.js +79 -0
  72. package/src/commands/tools/index.js +14 -0
  73. package/src/commands/tools/install.js +110 -0
  74. package/src/commands/tools/list.js +91 -0
  75. package/src/commands/tools/search.js +60 -0
  76. package/src/commands/update.js +83 -112
  77. package/src/commands/util/add.js +151 -0
  78. package/src/commands/util/index.js +15 -0
  79. package/src/commands/util/list.js +97 -0
  80. package/src/commands/util/remove.js +76 -0
  81. package/src/commands/util/run.js +79 -0
  82. package/src/commands/util/show.js +67 -0
  83. package/src/commands/version.js +21 -88
  84. package/src/installers/_template.js +104 -0
  85. package/src/installers/git.js +150 -0
  86. package/src/installers/homebrew.js +190 -0
  87. package/src/installers/node.js +223 -0
  88. package/src/installers/registry.json +29 -0
  89. package/src/lib/config.js +125 -0
  90. package/src/lib/detect.js +74 -0
  91. package/src/lib/errors.js +114 -0
  92. package/src/lib/github.js +315 -0
  93. package/src/lib/installer.js +225 -0
  94. package/src/lib/output.js +239 -0
  95. package/src/lib/platform.js +112 -0
  96. package/src/lib/platforms/amazon-linux.js +41 -0
  97. package/src/lib/platforms/gitbash.js +46 -0
  98. package/src/lib/platforms/macos.js +45 -0
  99. package/src/lib/platforms/raspbian.js +41 -0
  100. package/src/lib/platforms/ubuntu.js +39 -0
  101. package/src/lib/platforms/windows.js +45 -0
  102. package/src/lib/prompt.js +161 -0
  103. package/src/lib/schema.js +211 -0
  104. package/src/lib/shell.js +75 -0
  105. package/src/patterns/gitignore/claude-code.txt +25 -0
  106. package/src/patterns/gitignore/docker.txt +15 -0
  107. package/src/patterns/gitignore/go.txt +24 -0
  108. package/src/patterns/gitignore/java.txt +38 -0
  109. package/src/patterns/gitignore/jetbrains.txt +26 -0
  110. package/src/patterns/gitignore/linux.txt +18 -0
  111. package/src/patterns/gitignore/macos.txt +27 -0
  112. package/src/patterns/gitignore/node.txt +51 -0
  113. package/src/patterns/gitignore/python.txt +55 -0
  114. package/src/patterns/gitignore/rust.txt +14 -0
  115. package/src/patterns/gitignore/terraform.txt +30 -0
  116. package/src/patterns/gitignore/vscode.txt +15 -0
  117. package/src/patterns/gitignore/windows.txt +25 -0
  118. package/src/utils/clone/index.js +165 -0
  119. package/src/utils/git-push/index.js +230 -0
  120. package/src/utils/git-status/index.js +116 -0
  121. package/src/utils/git-status/unix.sh +75 -0
  122. package/src/utils/registry.json +41 -0
  123. package/bin/dev.js +0 -16
  124. package/files/README.md +0 -0
  125. package/files/claude/.claude/commands/setup-context.md +0 -3
  126. package/files/monorepos/_archive/README.md +0 -36
  127. package/files/monorepos/_legacy/README.md +0 -36
  128. package/files/monorepos/ai-docs/README.md +0 -33
  129. package/files/monorepos/apps/README.md +0 -24
  130. package/files/monorepos/docs/README.md +0 -40
  131. package/files/monorepos/packages/README.md +0 -25
  132. package/files/monorepos/research/README.md +0 -29
  133. package/files/monorepos/scripts/README.md +0 -24
  134. package/src/commands/README.md +0 -41
  135. package/src/commands/configure.js +0 -199
  136. package/src/commands/identity.js +0 -1630
  137. package/src/commands/ignore.js +0 -247
  138. package/src/commands/install.js +0 -526
  139. package/src/commands/setup.js +0 -246
  140. package/src/completion.js +0 -284
  141. package/src/constants.js +0 -45
  142. package/src/ignore/claude-code.txt +0 -10
  143. package/src/ignore/docker.txt +0 -18
  144. package/src/ignore/linux.txt +0 -23
  145. package/src/ignore/macos.txt +0 -36
  146. package/src/ignore/node.txt +0 -55
  147. package/src/ignore/terraform.txt +0 -37
  148. package/src/ignore/vscode.txt +0 -18
  149. package/src/ignore/windows.txt +0 -35
  150. package/src/index.js +0 -0
  151. package/src/installs/README.md +0 -399
  152. package/src/installs/adobe-creative-cloud.js +0 -546
  153. package/src/installs/adobe-creative-cloud.md +0 -605
  154. package/src/installs/appcleaner.js +0 -321
  155. package/src/installs/appcleaner.md +0 -699
  156. package/src/installs/apt-transport-https.js +0 -390
  157. package/src/installs/apt-transport-https.md +0 -678
  158. package/src/installs/atomicparsley.js +0 -642
  159. package/src/installs/atomicparsley.md +0 -795
  160. package/src/installs/aws-cli.js +0 -797
  161. package/src/installs/aws-cli.md +0 -727
  162. package/src/installs/balena-etcher.js +0 -710
  163. package/src/installs/balena-etcher.md +0 -761
  164. package/src/installs/bambu-studio.js +0 -1143
  165. package/src/installs/bambu-studio.md +0 -780
  166. package/src/installs/bash-completion.js +0 -575
  167. package/src/installs/bash-completion.md +0 -833
  168. package/src/installs/bash.js +0 -417
  169. package/src/installs/bash.md +0 -993
  170. package/src/installs/beyond-compare.js +0 -603
  171. package/src/installs/beyond-compare.md +0 -813
  172. package/src/installs/brave-browser.js +0 -968
  173. package/src/installs/brave-browser.md +0 -650
  174. package/src/installs/build-essential.js +0 -529
  175. package/src/installs/build-essential.md +0 -977
  176. package/src/installs/ca-certificates.js +0 -618
  177. package/src/installs/ca-certificates.md +0 -937
  178. package/src/installs/caffeine.js +0 -508
  179. package/src/installs/caffeine.md +0 -839
  180. package/src/installs/camtasia.js +0 -596
  181. package/src/installs/camtasia.md +0 -762
  182. package/src/installs/chatgpt.js +0 -476
  183. package/src/installs/chatgpt.md +0 -814
  184. package/src/installs/chocolatey.js +0 -456
  185. package/src/installs/chocolatey.md +0 -661
  186. package/src/installs/chrome-canary.js +0 -419
  187. package/src/installs/chrome-canary.md +0 -641
  188. package/src/installs/chromium.js +0 -667
  189. package/src/installs/chromium.md +0 -838
  190. package/src/installs/claude-code.js +0 -576
  191. package/src/installs/claude-code.md +0 -1173
  192. package/src/installs/cloudflare-warp.js +0 -900
  193. package/src/installs/cloudflare-warp.md +0 -1047
  194. package/src/installs/comet-browser.js +0 -588
  195. package/src/installs/comet-browser.md +0 -731
  196. package/src/installs/curl.js +0 -379
  197. package/src/installs/curl.md +0 -714
  198. package/src/installs/cursor.js +0 -579
  199. package/src/installs/cursor.md +0 -970
  200. package/src/installs/dbeaver.js +0 -924
  201. package/src/installs/dbeaver.md +0 -939
  202. package/src/installs/dbschema.js +0 -692
  203. package/src/installs/dbschema.md +0 -925
  204. package/src/installs/dependencies.md +0 -453
  205. package/src/installs/development-tools.js +0 -600
  206. package/src/installs/development-tools.md +0 -977
  207. package/src/installs/docker.js +0 -1029
  208. package/src/installs/docker.md +0 -1109
  209. package/src/installs/drawio.js +0 -1019
  210. package/src/installs/drawio.md +0 -795
  211. package/src/installs/elmedia-player.js +0 -347
  212. package/src/installs/elmedia-player.md +0 -556
  213. package/src/installs/ffmpeg.js +0 -889
  214. package/src/installs/ffmpeg.md +0 -852
  215. package/src/installs/file.js +0 -464
  216. package/src/installs/file.md +0 -987
  217. package/src/installs/gemini-cli.js +0 -811
  218. package/src/installs/gemini-cli.md +0 -1153
  219. package/src/installs/git.js +0 -400
  220. package/src/installs/git.md +0 -907
  221. package/src/installs/gitego.js +0 -949
  222. package/src/installs/gitego.md +0 -1172
  223. package/src/installs/go.js +0 -931
  224. package/src/installs/go.md +0 -958
  225. package/src/installs/google-antigravity.js +0 -913
  226. package/src/installs/google-antigravity.md +0 -1075
  227. package/src/installs/google-chrome.js +0 -833
  228. package/src/installs/google-chrome.md +0 -862
  229. package/src/installs/gpg.js +0 -480
  230. package/src/installs/gpg.md +0 -1056
  231. package/src/installs/homebrew.js +0 -1028
  232. package/src/installs/homebrew.md +0 -988
  233. package/src/installs/imageoptim.js +0 -968
  234. package/src/installs/imageoptim.md +0 -1119
  235. package/src/installs/installers.json +0 -4032
  236. package/src/installs/installers.json.tmp +0 -3953
  237. package/src/installs/jq.js +0 -400
  238. package/src/installs/jq.md +0 -809
  239. package/src/installs/keyboard-maestro.js +0 -719
  240. package/src/installs/keyboard-maestro.md +0 -825
  241. package/src/installs/kiro.js +0 -864
  242. package/src/installs/kiro.md +0 -1015
  243. package/src/installs/latex.js +0 -789
  244. package/src/installs/latex.md +0 -1095
  245. package/src/installs/lftp.js +0 -356
  246. package/src/installs/lftp.md +0 -907
  247. package/src/installs/lsb-release.js +0 -346
  248. package/src/installs/lsb-release.md +0 -814
  249. package/src/installs/messenger.js +0 -847
  250. package/src/installs/messenger.md +0 -900
  251. package/src/installs/microsoft-office.js +0 -568
  252. package/src/installs/microsoft-office.md +0 -760
  253. package/src/installs/microsoft-teams.js +0 -801
  254. package/src/installs/microsoft-teams.md +0 -886
  255. package/src/installs/moom.js +0 -326
  256. package/src/installs/moom.md +0 -570
  257. package/src/installs/node.js +0 -904
  258. package/src/installs/node.md +0 -1153
  259. package/src/installs/nordpass.js +0 -716
  260. package/src/installs/nordpass.md +0 -921
  261. package/src/installs/nordvpn.js +0 -892
  262. package/src/installs/nordvpn.md +0 -1052
  263. package/src/installs/nvm.js +0 -995
  264. package/src/installs/nvm.md +0 -1057
  265. package/src/installs/ohmyzsh.js +0 -529
  266. package/src/installs/ohmyzsh.md +0 -1094
  267. package/src/installs/openssh.js +0 -804
  268. package/src/installs/openssh.md +0 -1056
  269. package/src/installs/pandoc.js +0 -662
  270. package/src/installs/pandoc.md +0 -1036
  271. package/src/installs/parallels-desktop.js +0 -431
  272. package/src/installs/parallels-desktop.md +0 -446
  273. package/src/installs/pinentry.js +0 -510
  274. package/src/installs/pinentry.md +0 -1142
  275. package/src/installs/pngyu.js +0 -869
  276. package/src/installs/pngyu.md +0 -896
  277. package/src/installs/postman.js +0 -799
  278. package/src/installs/postman.md +0 -940
  279. package/src/installs/procps.js +0 -425
  280. package/src/installs/procps.md +0 -851
  281. package/src/installs/safari-tech-preview.js +0 -374
  282. package/src/installs/safari-tech-preview.md +0 -533
  283. package/src/installs/sfnt2woff.js +0 -658
  284. package/src/installs/sfnt2woff.md +0 -795
  285. package/src/installs/shellcheck.js +0 -481
  286. package/src/installs/shellcheck.md +0 -1005
  287. package/src/installs/slack.js +0 -741
  288. package/src/installs/slack.md +0 -865
  289. package/src/installs/snagit.js +0 -585
  290. package/src/installs/snagit.md +0 -844
  291. package/src/installs/software-properties-common.js +0 -372
  292. package/src/installs/software-properties-common.md +0 -805
  293. package/src/installs/spotify.js +0 -877
  294. package/src/installs/spotify.md +0 -901
  295. package/src/installs/studio-3t.js +0 -823
  296. package/src/installs/studio-3t.md +0 -918
  297. package/src/installs/sublime-text.js +0 -804
  298. package/src/installs/sublime-text.md +0 -914
  299. package/src/installs/superwhisper.js +0 -706
  300. package/src/installs/superwhisper.md +0 -630
  301. package/src/installs/tailscale.js +0 -745
  302. package/src/installs/tailscale.md +0 -1100
  303. package/src/installs/tar.js +0 -389
  304. package/src/installs/tar.md +0 -946
  305. package/src/installs/termius.js +0 -798
  306. package/src/installs/termius.md +0 -844
  307. package/src/installs/terraform.js +0 -779
  308. package/src/installs/terraform.md +0 -899
  309. package/src/installs/tfenv.js +0 -778
  310. package/src/installs/tfenv.md +0 -1091
  311. package/src/installs/tidal.js +0 -771
  312. package/src/installs/tidal.md +0 -864
  313. package/src/installs/tmux.js +0 -346
  314. package/src/installs/tmux.md +0 -1030
  315. package/src/installs/tree.js +0 -411
  316. package/src/installs/tree.md +0 -833
  317. package/src/installs/unzip.js +0 -460
  318. package/src/installs/unzip.md +0 -879
  319. package/src/installs/vim.js +0 -421
  320. package/src/installs/vim.md +0 -1040
  321. package/src/installs/vlc.js +0 -821
  322. package/src/installs/vlc.md +0 -927
  323. package/src/installs/vscode.js +0 -843
  324. package/src/installs/vscode.md +0 -1002
  325. package/src/installs/wget.js +0 -420
  326. package/src/installs/wget.md +0 -791
  327. package/src/installs/whatsapp.js +0 -729
  328. package/src/installs/whatsapp.md +0 -854
  329. package/src/installs/winpty.js +0 -352
  330. package/src/installs/winpty.md +0 -620
  331. package/src/installs/woff2.js +0 -553
  332. package/src/installs/woff2.md +0 -977
  333. package/src/installs/wsl.js +0 -572
  334. package/src/installs/wsl.md +0 -699
  335. package/src/installs/xcode-clt.js +0 -520
  336. package/src/installs/xcode-clt.md +0 -351
  337. package/src/installs/xcode.js +0 -560
  338. package/src/installs/xcode.md +0 -573
  339. package/src/installs/yarn.js +0 -824
  340. package/src/installs/yarn.md +0 -1074
  341. package/src/installs/yq.js +0 -654
  342. package/src/installs/yq.md +0 -944
  343. package/src/installs/yt-dlp.js +0 -701
  344. package/src/installs/yt-dlp.md +0 -946
  345. package/src/installs/yum-utils.js +0 -297
  346. package/src/installs/yum-utils.md +0 -648
  347. package/src/installs/zoom.js +0 -759
  348. package/src/installs/zoom.md +0 -884
  349. package/src/installs/zsh.js +0 -455
  350. package/src/installs/zsh.md +0 -1008
  351. package/src/scripts/README.md +0 -617
  352. package/src/scripts/STATUS.md +0 -208
  353. package/src/scripts/afk.js +0 -411
  354. package/src/scripts/backup-all.js +0 -746
  355. package/src/scripts/backup-source.js +0 -727
  356. package/src/scripts/brewd.js +0 -389
  357. package/src/scripts/brewi.js +0 -520
  358. package/src/scripts/brewr.js +0 -527
  359. package/src/scripts/brews.js +0 -477
  360. package/src/scripts/brewu.js +0 -504
  361. package/src/scripts/c.js +0 -201
  362. package/src/scripts/ccurl.js +0 -341
  363. package/src/scripts/certbot-crontab-init.js +0 -504
  364. package/src/scripts/certbot-init.js +0 -657
  365. package/src/scripts/ch.js +0 -355
  366. package/src/scripts/claude-danger.js +0 -268
  367. package/src/scripts/clean-dev.js +0 -435
  368. package/src/scripts/clear-dns-cache.js +0 -541
  369. package/src/scripts/clone.js +0 -435
  370. package/src/scripts/code-all.js +0 -437
  371. package/src/scripts/count-files.js +0 -211
  372. package/src/scripts/count-folders.js +0 -211
  373. package/src/scripts/count.js +0 -264
  374. package/src/scripts/d.js +0 -219
  375. package/src/scripts/datauri.js +0 -389
  376. package/src/scripts/delete-files.js +0 -380
  377. package/src/scripts/docker-clean.js +0 -426
  378. package/src/scripts/dp.js +0 -442
  379. package/src/scripts/e.js +0 -390
  380. package/src/scripts/empty-trash.js +0 -513
  381. package/src/scripts/evm.js +0 -444
  382. package/src/scripts/fetch-github-repos.js +0 -456
  383. package/src/scripts/get-channel.js +0 -345
  384. package/src/scripts/get-course.js +0 -399
  385. package/src/scripts/get-dependencies.js +0 -306
  386. package/src/scripts/get-folder.js +0 -799
  387. package/src/scripts/get-tunes.js +0 -426
  388. package/src/scripts/get-video.js +0 -367
  389. package/src/scripts/git-backup.js +0 -577
  390. package/src/scripts/git-clone.js +0 -493
  391. package/src/scripts/git-pup.js +0 -319
  392. package/src/scripts/git-push.js +0 -396
  393. package/src/scripts/h.js +0 -622
  394. package/src/scripts/hide-desktop-icons.js +0 -499
  395. package/src/scripts/hide-hidden-files.js +0 -538
  396. package/src/scripts/install-dependencies-from.js +0 -456
  397. package/src/scripts/ips.js +0 -663
  398. package/src/scripts/iso.js +0 -370
  399. package/src/scripts/killni.js +0 -577
  400. package/src/scripts/ll.js +0 -467
  401. package/src/scripts/local-ip.js +0 -325
  402. package/src/scripts/m.js +0 -524
  403. package/src/scripts/map.js +0 -309
  404. package/src/scripts/mkd.js +0 -351
  405. package/src/scripts/ncu-update-all.js +0 -457
  406. package/src/scripts/nginx-init.js +0 -718
  407. package/src/scripts/npmi.js +0 -382
  408. package/src/scripts/o.js +0 -511
  409. package/src/scripts/org-by-date.js +0 -338
  410. package/src/scripts/p.js +0 -224
  411. package/src/scripts/packages.js +0 -330
  412. package/src/scripts/path.js +0 -225
  413. package/src/scripts/ports.js +0 -597
  414. package/src/scripts/q.js +0 -305
  415. package/src/scripts/refresh-files.js +0 -394
  416. package/src/scripts/remove-smaller-files.js +0 -516
  417. package/src/scripts/rename-files-with-date.js +0 -533
  418. package/src/scripts/resize-image.js +0 -539
  419. package/src/scripts/rm-safe.js +0 -669
  420. package/src/scripts/s.js +0 -540
  421. package/src/scripts/set-git-public.js +0 -365
  422. package/src/scripts/show-desktop-icons.js +0 -475
  423. package/src/scripts/show-hidden-files.js +0 -472
  424. package/src/scripts/tpa.js +0 -280
  425. package/src/scripts/tpo.js +0 -280
  426. package/src/scripts/u.js +0 -505
  427. package/src/scripts/vpush.js +0 -437
  428. package/src/scripts/y.js +0 -283
  429. package/src/utils/README.md +0 -95
  430. package/src/utils/common/apps.js +0 -143
  431. package/src/utils/common/display.js +0 -157
  432. package/src/utils/common/network.js +0 -185
  433. package/src/utils/common/os.js +0 -294
  434. package/src/utils/common/package-manager.js +0 -301
  435. package/src/utils/common/privileges.js +0 -138
  436. package/src/utils/common/shell.js +0 -261
  437. package/src/utils/macos/apps.js +0 -228
  438. package/src/utils/macos/brew.js +0 -315
  439. package/src/utils/ubuntu/apt.js +0 -307
  440. package/src/utils/ubuntu/desktop.js +0 -292
  441. package/src/utils/ubuntu/snap.js +0 -344
  442. package/src/utils/ubuntu/systemd.js +0 -286
  443. package/src/utils/windows/choco.js +0 -465
  444. package/src/utils/windows/env.js +0 -246
  445. package/src/utils/windows/registry.js +0 -269
  446. package/src/utils/windows/shell.js +0 -240
  447. package/src/utils/windows/winget.js +0 -489
@@ -1,1052 +0,0 @@
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)