blob: 06016098894a1d91bee10a2cbbfb21134c615768 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
# NordVPN {#module-services-nordvpn}
*Source:* {file}`modules/services/networking/nordvpn.nix`
*Upstream documentation:* <https://github.com/NordSecurity/nordvpn-linux>
NordVPN offers a paid virtual private network (VPN) service.
The service operates as closed-source,
but the Linux client uses open-source code licensed under GPLv3.
A minimal configuration in NixOS appears as follows:
```nix
{
services.nordvpn.enable = true;
networking.firewall.enable = true;
networking.firewall.checkReversePath = "loose";
}
```
When using a firewall, set `networking.firewall.checkReversePath` to `"loose"` or `false`.
NordVPN includes a `kill-switch` feature that blocks all packets not associated with the VPN connection.
Additionally, add your user to the `nordvpn` group.
```nix
{
users.users.yourUser = {
#..
extraGroups = [
#..
"nordvpn"
];
};
}
```
If you prefer to use your own user and group, you can do so using
```nix
{
services.nordvpn.user = "SOME-USER";
services.nordvpn.group = "SOME-GROUP";
}
```
NordVPN provides several useful CLI commands, including:
```bash
nordvpn login # Log in using an OAuth URL
nordvpn login --token <token> # Log in with a token obtained from your NordVPN account
nordvpn c # Connect to the VPN
nordvpn c ie # Connect to a NordVPN server in Ireland
nordvpn d # Disconnect from the VPN
nordvpn set technology openvpn # Switch to OpenVPN technology
nordvpn c # Reconnect after changing technology
```
Additionally, if you prefer to use the friendly GUI,
```bash
nordvpn-gui
```
**Disclaimer:** NixOS currently does not support meshnet.
Contributions welcome!
|