qdm12 / gluetun

VPN client in a thin Docker container for multiple VPN providers, written in Go, and using OpenVPN or Wireguard, DNS over TLS, with a few proxy servers built-in.
https://hub.docker.com/r/qmcgaw/gluetun
MIT License
7.52k stars 355 forks source link

Feature request: Nordvpn support #178

Closed qdm12 closed 4 years ago

groenator commented 4 years ago

+1

wolph commented 4 years ago

Perhaps a useful link for this is the nordvpn server list

WARNING! LARGE! https://nordvpn.com/api/server

qdm12 commented 4 years ago

Nice, I'll work on that one now. At least their list is publicly accessible, doing some go-fu and that should allow me to easily extract all the constant variables we need. Cyberghost for example had all their server hard to obtain, I ended up writing a program trying to resolve all the country codes hostnames to rebuild a list hahaha (https://github.com/qdm12/private-internet-access-docker/blob/master/cmd/hostfinder/main.go)

qdm12 commented 4 years ago

@WoLpH That's great, I can get the mapping between country and IP addresses (multiple servers per country). I noticed there are (many) servers per country, do you usually pick by country or can you also choose the exact server you want?

I also found their openvpn config files which look relatively the same from a server to another, just with a different IP, so that should make things easy for me 🎉

wolph commented 4 years ago

You can do both. You can select per location if that's useful, or a specific server. Since that file also includes the current server load (as a percentage) you can choose a server that currently is the fastest.

I personally select by coordinates first and by load second so a specific vpn host would work for me ;)

qdm12 commented 4 years ago

So I was thinking to make the country choice compulsory and have an optional server number (i.e. 5032 for United States #5032). Do you think that would fit most use cases? You can always specify a TARGET_IP, especially since they seem to have fixed ip addresses.

wolph commented 4 years ago

That seems a good choice to me. It's hard to get more specific than that without having to do lat/long distance calculation and making it more complicated. Unfortunately they only list countries in the API instead of cities/regions within a country

qdm12 commented 4 years ago

Hello both, I pushed a branch for nordvpn which should had built a Docker image with tag :nordvpn if you want to try it out.

A few servers (~5%) were omitted for now as they don't support TCP and/or UDP but I can see how to fix that later on if someone needs it (being lazy here).

Also in the end, just set REGION to the server name (i.e. United States #5032) as otherwise it becomes a bit unmanageable to fit all purposes (there is a case with Switzerland - Sweden something for example). I also doubt double tunnel would work, although it's worth a try. I can add options for these (or whatever nordvpn proposes) later if someone needs it.

🎉 🎉 🎉

wolph commented 4 years ago

I just gave it a try:

2020-07-12T16:58:14.942Z        INFO    Unbound version: 1.10.1
2020-07-12T16:58:14.944Z        INFO    IPtables version: v1.8.4
2020-07-12T16:58:14.954Z        INFO    TinyProxy version: 1.10.0
2020-07-12T16:58:14.957Z        INFO    ShadowSocks version: 3.3.4
2020-07-12T16:58:14.961Z        INFO    OpenVPN version: 2.4.9
2020-07-12T16:58:14.961Z        ERROR   VPN service provider "nordvpn" is not valid
docker run --name nordvpn --cap-add=NET_ADMIN -e USER=... -e PASSWORD=... -e VPNSP=nordvpn -e REGION=Sweden -e SHADOWSOCKS=on -e FIREWALL=off -e TINYPROXY=on qmcgaw/private-internet-access:nordvpn
qdm12 commented 4 years ago

Oops good point, I just fixed it. You can try with (replace user and password):

docker pull qmcgaw/private-internet-access:nordvpn
docker run -it --rm --cap-add=NET_ADMIN -e USER="blabla" -e PASSWORD="blabla" -e VPNSP=nordvpn -e REGION="Sweden #483" qmcgaw/private-internet-access:nordvpn

For me openvpn tells me I'm not authorized with my garbage password so it should for you 😉

wolph commented 4 years ago

It looks to be working just fine. But I do have a feature suggestion. Instead of requiring something like United States #6128 it would be nice if you could just do United States to get a random server from the bunch.

qdm12 commented 4 years ago

Yes that's what I wanted to do initially. But there were some odd cases where it would be for example Switzerland - Sweden #001 or something similar. I'll dig a bit more in their naming structure to try to solve those corner cases.

qdm12 commented 4 years ago

Done 😉

So there is now SERVER_NUMBER you can optionally use to filter out the servers for a particular country. Although I have no clue how double vpn weird names would work, but I guess there is a server number and region for them too. Please try one last time and I'll merge it.

wolph commented 4 years ago

Seems to work great now :)

AlexanderSch90 commented 3 years ago

Hey, NordVPN works, but the region restriction and the server number restriction don't work either. Attached is a log of the server number restriction. He should only take servers 400-408 = Netherlands. But he randomly connects to a server without a filter.

💻  Email? quentin.mcgaw@gmail.com,
☕  Slack? Join from the Slack button on Github,
💸  Help me? https://github.com/sponsors/qdm12,
2021-02-14T17:08:49.654+0100    INFO    OpenVPN version: 2.4.10,
2021-02-14T17:08:49.657+0100    INFO    Unbound version: 1.10.1,
2021-02-14T17:08:49.659+0100    INFO    IPtables version: v1.8.4,
2021-02-14T17:08:49.683+0100    INFO    Settings summary below:,
|--OpenVPN:,
   |--Verbosity level: 1,
   |--Run as root: enabled,
   |--Provider:,
      |--Nordvpn settings:,
         |--Network protocol: udp,
         |--Numbers: 400, 401, 402, 403, 405, 406, 407, 408,
|--DNS:,
   |--Plaintext address: 1.1.1.1,
   |--DNS over TLS:,
      |--Unbound:,
          |--DNS over TLS providers:,
              |--cloudflare,
          |--Listening port: 53,
          |--Access control:,
              |--Allowed:,
                  |--0.0.0.0/0,
                  |--::/0,
          |--Caching: enabled,
          |--IPv4 resolution: enabled,
          |--IPv6 resolution: disabled,
          |--Verbosity level: 1/5,
          |--Verbosity details level: 0/4,
          |--Validation log level: 0/2,
          |--Blocked hostnames:,
          |--Blocked IP addresses:,
              |--127.0.0.1/8,
              |--10.0.0.0/8,
              |--172.16.0.0/12,
              |--192.168.0.0/16,
              |--169.254.0.0/16,
              |--::1/128,
              |--fc00::/7,
              |--fe80::/10,
              |--::ffff:0:0/96,
          |--Allowed hostnames:,
      |--Block malicious: enabled,
      |--Update: every 24h0m0s,
|--Firewall:,
   |--Outbound subnets: 192.168.2.0/24, 10.4.4.0/24, 10.4.3.0/24,
|--System:,
   |--Process user ID: 1000,
   |--Process group ID: 1000,
   |--Timezone: europe/berlin,
|--HTTP control server:,
   |--Listening port: 8000,
   |--Logging: enabled,
|--Public IP getter:,
   |--Fetch period: 12h0m0s,
   |--IP file: /tmp/gluetun/ip,
|--Github version information: enabled,
2021-02-14T17:08:49.737+0100    INFO    storage: merging by most recent 6949 hardcoded servers and 6949 servers read from /gluetun/servers.json,
2021-02-14T17:08:49.789+0100    INFO    routing: default route found: interface eth0, gateway 172.17.0.1,
2021-02-14T17:08:49.790+0100    INFO    routing: local subnet found: 172.17.0.0/16,
2021-02-14T17:08:49.791+0100    INFO    routing: default route found: interface eth0, gateway 172.17.0.1,
2021-02-14T17:08:49.791+0100    INFO    routing: adding route for 0.0.0.0/0,
2021-02-14T17:08:49.791+0100    INFO    firewall: firewall disabled, only updating allowed subnets internal list,
2021-02-14T17:08:49.791+0100    INFO    routing: default route found: interface eth0, gateway 172.17.0.1,
2021-02-14T17:08:49.791+0100    INFO    routing: adding route for 192.168.2.0/24,
2021-02-14T17:08:49.792+0100    INFO    routing: adding route for 10.4.4.0/24,
2021-02-14T17:08:49.792+0100    INFO    routing: adding route for 10.4.3.0/24,
2021-02-14T17:08:49.792+0100    INFO    openvpn configurator: checking for device /dev/net/tun,
2021-02-14T17:08:49.792+0100    WARN    TUN device is not available: open /dev/net/tun: no such file or directory,
2021-02-14T17:08:49.792+0100    INFO    openvpn configurator: creating /dev/net/tun,
2021-02-14T17:08:49.792+0100    INFO    firewall: enabling...,
2021-02-14T17:08:49.820+0100    INFO    firewall: enabled successfully,
2021-02-14T17:08:49.821+0100    INFO    healthcheck: listening on 127.0.0.1:9999,
2021-02-14T17:08:49.823+0100    INFO    firewall: setting VPN connection through firewall...,
2021-02-14T17:08:49.823+0100    INFO    dns over tls: using plaintext DNS at address 1.1.1.1,
2021-02-14T17:08:49.823+0100    INFO    http server: listening on 0.0.0.0:8000,
2021-02-14T17:08:49.827+0100    INFO    openvpn configurator: starting openvpn,
2021-02-14T17:08:49.831+0100    INFO    openvpn: OpenVPN 2.4.10 x86_64-alpine-linux-musl [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [MH/PKTINFO] [AEAD] built on Jan  4 2021,
2021-02-14T17:08:49.831+0100    INFO    openvpn: library versions: OpenSSL 1.1.1i  8 Dec 2020, LZO 2.10,
2021-02-14T17:08:49.831+0100    WARN    openvpn: --ping should normally be used with --ping-restart or --ping-exit,
2021-02-14T17:08:49.836+0100    INFO    openvpn: TCP/UDP: Preserving recently used remote address: [AF_INET]86.106.103.19:1194,
2021-02-14T17:08:49.836+0100    INFO    openvpn: UDP link local: (not bound),
2021-02-14T17:08:49.836+0100    INFO    openvpn: UDP link remote: [AF_INET]86.106.103.19:1194,
2021-02-14T17:08:49.867+0100    INFO    healthcheck: healthy!,
2021-02-14T17:08:50.053+0100    INFO    openvpn: [se402.nordvpn.com] Peer Connection Initiated with [AF_INET]86.106.103.19:1194,
2021-02-14T17:08:51.185+0100    INFO    openvpn: TUN/TAP device tun0 opened,
2021-02-14T17:08:51.185+0100    INFO    openvpn: /sbin/ip link set dev tun0 up mtu 1500,
2021-02-14T17:08:51.187+0100    INFO    openvpn: /sbin/ip addr add dev tun0 10.8.3.8/24 broadcast 10.8.3.255,
2021-02-14T17:08:51.193+0100    INFO    openvpn: Initialization Sequence Completed,
2021-02-14T17:08:51.194+0100    INFO    VPN routing IP address: 86.106.103.19,
2021-02-14T17:08:51.194+0100    INFO    dns over tls: downloading DNS over TLS cryptographic files,
2021-02-14T17:08:55.109+0100    INFO    dns over tls: downloading hostnames and IP block lists,
2021-02-14T17:08:56.292+0100    INFO    dns over tls: init module 0: validator,
2021-02-14T17:08:56.292+0100    INFO    dns over tls: init module 1: iterator,
2021-02-14T17:08:56.448+0100    INFO    dns over tls: start of service (unbound 1.10.1).,
2021-02-14T17:08:56.622+0100    INFO    dns over tls: generate keytag query _ta-4a5c-4f66. NULL IN,
2021-02-14T17:08:57.333+0100    INFO    dns over tls: ready,
2021-02-14T17:08:57.857+0100    INFO    You are running on the bleeding edge of latest!,
2021-02-14T17:08:59.779+0100    INFO    ip getter: Public IP address is 86.106.103.20 (Sweden, Stockholm, Stockholm),
qdm12 commented 3 years ago

@AlexanderSch90 if you look in the list of servers in the code there are two servers with number 400 for example. These numbers seem to be really to distinguish servers in the same location. I think you need to combine both SERVER_NUMBER With another filter option. However let me know if maybe the Wiki doesn't reflect that. Thanks!

qdm12 commented 3 years ago

I also added a missing link in the Wiki sidebar (page was there, but not linked) to get to the list of NordVPN servers: https://github.com/qdm12/gluetun/wiki/Nordvpn-Servers hopefully that can clarify things up 😉

AlexanderSch90 commented 3 years ago

Hey thanks for the info. Apparently it only works if you use REGION and SERVER_NUMBER together. The explanations to the ENV state that the server number is optional. Attached is a log from which it can be seen that "only" the region does not work. REGION=Netherlands but connected to United Kingdom...

☕  Slack? Join from the Slack button on Github,
💸  Help me? https://github.com/sponsors/qdm12,
2021-02-15T19:07:59.339+0100    INFO    OpenVPN version: 2.4.10,
2021-02-15T19:07:59.343+0100    INFO    Unbound version: 1.10.1,
2021-02-15T19:07:59.345+0100    INFO    IPtables version: v1.8.4,
2021-02-15T19:07:59.369+0100    INFO    Settings summary below:,
|--OpenVPN:,
   |--Verbosity level: 1,
   |--Run as root: enabled,
   |--Provider:,
      |--Nordvpn settings:,
         |--Network protocol: udp,
         |--Regions: netherlands,
|--DNS:,
   |--Plaintext address: 1.1.1.1,
   |--DNS over TLS:,
      |--Unbound:,
          |--DNS over TLS providers:,
              |--cloudflare,
          |--Listening port: 53,
          |--Access control:,
              |--Allowed:,
                  |--0.0.0.0/0,
                  |--::/0,
          |--Caching: enabled,
          |--IPv4 resolution: enabled,
          |--IPv6 resolution: disabled,
          |--Verbosity level: 1/5,
          |--Verbosity details level: 0/4,
          |--Validation log level: 0/2,
          |--Blocked hostnames:,
          |--Blocked IP addresses:,
              |--127.0.0.1/8,
              |--10.0.0.0/8,
              |--172.16.0.0/12,
              |--192.168.0.0/16,
              |--169.254.0.0/16,
              |--::1/128,
              |--fc00::/7,
              |--fe80::/10,
              |--::ffff:0:0/96,
          |--Allowed hostnames:,
      |--Block malicious: enabled,
      |--Update: every 24h0m0s,
|--Firewall:,
   |--Outbound subnets: 192.168.2.0/24, 10.4.4.0/24, 10.4.3.0/24,
|--System:,
   |--Process user ID: 1000,
   |--Process group ID: 1000,
   |--Timezone: europe/berlin,
|--HTTP control server:,
   |--Listening port: 8000,
   |--Logging: enabled,
|--Public IP getter:,
   |--Fetch period: 12h0m0s,
   |--IP file: /tmp/gluetun/ip,
|--Github version information: enabled,
2021-02-15T19:07:59.414+0100    INFO    storage: merging by most recent 6949 hardcoded servers and 6949 servers read from /gluetun/servers.json,
2021-02-15T19:07:59.459+0100    INFO    routing: default route found: interface eth0, gateway 172.17.0.1,
2021-02-15T19:07:59.460+0100    INFO    routing: local subnet found: 172.17.0.0/16,
2021-02-15T19:07:59.461+0100    INFO    routing: default route found: interface eth0, gateway 172.17.0.1,
2021-02-15T19:07:59.461+0100    INFO    routing: adding route for 0.0.0.0/0,
2021-02-15T19:07:59.461+0100    INFO    firewall: firewall disabled, only updating allowed subnets internal list,
2021-02-15T19:07:59.461+0100    INFO    routing: default route found: interface eth0, gateway 172.17.0.1,
2021-02-15T19:07:59.461+0100    INFO    routing: adding route for 192.168.2.0/24,
2021-02-15T19:07:59.461+0100    INFO    routing: adding route for 10.4.4.0/24,
2021-02-15T19:07:59.462+0100    INFO    routing: adding route for 10.4.3.0/24,
2021-02-15T19:07:59.462+0100    INFO    openvpn configurator: checking for device /dev/net/tun,
2021-02-15T19:07:59.462+0100    WARN    TUN device is not available: open /dev/net/tun: no such file or directory,
2021-02-15T19:07:59.462+0100    INFO    openvpn configurator: creating /dev/net/tun,
2021-02-15T19:07:59.462+0100    INFO    firewall: enabling...,
2021-02-15T19:07:59.493+0100    INFO    firewall: enabled successfully,
2021-02-15T19:07:59.494+0100    INFO    healthcheck: listening on 127.0.0.1:9999,
2021-02-15T19:07:59.494+0100    INFO    dns over tls: using plaintext DNS at address 1.1.1.1,
2021-02-15T19:07:59.495+0100    INFO    http server: listening on 0.0.0.0:8000,
2021-02-15T19:07:59.497+0100    INFO    firewall: setting VPN connection through firewall...,
2021-02-15T19:07:59.502+0100    INFO    openvpn configurator: starting openvpn,
2021-02-15T19:07:59.506+0100    INFO    openvpn: OpenVPN 2.4.10 x86_64-alpine-linux-musl [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [MH/PKTINFO] [AEAD] built on Jan  4 2021,
2021-02-15T19:07:59.507+0100    INFO    openvpn: library versions: OpenSSL 1.1.1i  8 Dec 2020, LZO 2.10,
2021-02-15T19:07:59.507+0100    WARN    openvpn: --ping should normally be used with --ping-restart or --ping-exit,
2021-02-15T19:07:59.508+0100    INFO    openvpn: TCP/UDP: Preserving recently used remote address: [AF_INET]178.239.173.199:1194,
2021-02-15T19:07:59.508+0100    INFO    openvpn: UDP link local: (not bound),
2021-02-15T19:07:59.508+0100    INFO    openvpn: UDP link remote: [AF_INET]178.239.173.199:1194,
2021-02-15T19:07:59.627+0100    INFO    openvpn: [nl828.nordvpn.com] Peer Connection Initiated with [AF_INET]178.239.173.199:1194,
2021-02-15T19:08:02.636+0100    INFO    openvpn: TUN/TAP device tun0 opened,
2021-02-15T19:08:02.636+0100    INFO    openvpn: /sbin/ip link set dev tun0 up mtu 1500,
2021-02-15T19:08:02.638+0100    INFO    openvpn: /sbin/ip addr add dev tun0 10.8.3.9/24 broadcast 10.8.3.255,
2021-02-15T19:08:02.646+0100    INFO    openvpn: Initialization Sequence Completed,
2021-02-15T19:08:02.647+0100    INFO    VPN routing IP address: 178.239.173.199,
2021-02-15T19:08:02.647+0100    INFO    dns over tls: downloading DNS over TLS cryptographic files,
2021-02-15T19:08:03.522+0100    INFO    healthcheck: healthy!,
2021-02-15T19:08:05.789+0100    INFO    dns over tls: downloading hostnames and IP block lists,
2021-02-15T19:08:06.589+0100    INFO    dns over tls: init module 0: validator,
2021-02-15T19:08:06.590+0100    INFO    dns over tls: init module 1: iterator,
2021-02-15T19:08:06.760+0100    INFO    dns over tls: start of service (unbound 1.10.1).,
2021-02-15T19:08:06.846+0100    INFO    dns over tls: generate keytag query _ta-4a5c-4f66. NULL IN,
2021-02-15T19:08:06.848+0100    INFO    dns over tls: generate keytag query _ta-4a5c-4f66. NULL IN,
2021-02-15T19:08:07.213+0100    INFO    dns over tls: ready,
2021-02-15T19:08:07.401+0100    INFO    You are running 1 commit behind the most recent latest,
2021-02-15T19:08:10.242+0100    INFO    ip getter: Public IP address is 178.239.173.200 (United Kingdom, England, London),

If I put both "ENV" it works:

💸  Help me? https://github.com/sponsors/qdm12,
2021-02-15T19:14:42.093+0100    INFO    OpenVPN version: 2.4.10,
2021-02-15T19:14:42.099+0100    INFO    Unbound version: 1.10.1,
2021-02-15T19:14:42.101+0100    INFO    IPtables version: v1.8.4,
2021-02-15T19:14:42.142+0100    INFO    Settings summary below:,
|--OpenVPN:,
   |--Verbosity level: 1,
   |--Run as root: enabled,
   |--Provider:,
      |--Nordvpn settings:,
         |--Network protocol: udp,
         |--Regions: netherlands,
         |--Numbers: 400, 401, 402, 403, 405, 406, 407, 408,
|--DNS:,
   |--Plaintext address: 1.1.1.1,
   |--DNS over TLS:,
      |--Unbound:,
          |--DNS over TLS providers:,
              |--cloudflare,
          |--Listening port: 53,
          |--Access control:,
              |--Allowed:,
                  |--0.0.0.0/0,
                  |--::/0,
          |--Caching: enabled,
          |--IPv4 resolution: enabled,
          |--IPv6 resolution: disabled,
          |--Verbosity level: 1/5,
          |--Verbosity details level: 0/4,
          |--Validation log level: 0/2,
          |--Blocked hostnames:,
          |--Blocked IP addresses:,
              |--127.0.0.1/8,
              |--10.0.0.0/8,
              |--172.16.0.0/12,
              |--192.168.0.0/16,
              |--169.254.0.0/16,
              |--::1/128,
              |--fc00::/7,
              |--fe80::/10,
              |--::ffff:0:0/96,
          |--Allowed hostnames:,
      |--Block malicious: enabled,
      |--Update: every 24h0m0s,
|--Firewall:,
   |--Outbound subnets: 192.168.2.0/24, 10.4.4.0/24, 10.4.3.0/24,
|--System:,
   |--Process user ID: 1000,
   |--Process group ID: 1000,
   |--Timezone: europe/berlin,
|--HTTP control server:,
   |--Listening port: 8000,
   |--Logging: enabled,
|--Public IP getter:,
   |--Fetch period: 12h0m0s,
   |--IP file: /tmp/gluetun/ip,
|--Github version information: enabled,
2021-02-15T19:14:42.196+0100    INFO    storage: merging by most recent 6949 hardcoded servers and 6949 servers read from /gluetun/servers.json,
2021-02-15T19:14:42.245+0100    INFO    routing: default route found: interface eth0, gateway 172.17.0.1,
2021-02-15T19:14:42.245+0100    INFO    routing: local subnet found: 172.17.0.0/16,
2021-02-15T19:14:42.246+0100    INFO    routing: default route found: interface eth0, gateway 172.17.0.1,
2021-02-15T19:14:42.246+0100    INFO    routing: adding route for 0.0.0.0/0,
2021-02-15T19:14:42.246+0100    INFO    firewall: firewall disabled, only updating allowed subnets internal list,
2021-02-15T19:14:42.247+0100    INFO    routing: default route found: interface eth0, gateway 172.17.0.1,
2021-02-15T19:14:42.247+0100    INFO    routing: adding route for 192.168.2.0/24,
2021-02-15T19:14:42.247+0100    INFO    routing: adding route for 10.4.4.0/24,
2021-02-15T19:14:42.247+0100    INFO    routing: adding route for 10.4.3.0/24,
2021-02-15T19:14:42.247+0100    INFO    openvpn configurator: checking for device /dev/net/tun,
2021-02-15T19:14:42.247+0100    WARN    TUN device is not available: open /dev/net/tun: no such file or directory,
2021-02-15T19:14:42.247+0100    INFO    openvpn configurator: creating /dev/net/tun,
2021-02-15T19:14:42.247+0100    INFO    firewall: enabling...,
2021-02-15T19:14:42.275+0100    INFO    firewall: enabled successfully,
2021-02-15T19:14:42.276+0100    INFO    healthcheck: listening on 127.0.0.1:9999,
2021-02-15T19:14:42.277+0100    INFO    firewall: setting VPN connection through firewall...,
2021-02-15T19:14:42.278+0100    INFO    dns over tls: using plaintext DNS at address 1.1.1.1,
2021-02-15T19:14:42.278+0100    INFO    http server: listening on 0.0.0.0:8000,
2021-02-15T19:14:42.283+0100    INFO    openvpn configurator: starting openvpn,
2021-02-15T19:14:42.287+0100    INFO    openvpn: OpenVPN 2.4.10 x86_64-alpine-linux-musl [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [MH/PKTINFO] [AEAD] built on Jan  4 2021,
2021-02-15T19:14:42.288+0100    INFO    openvpn: library versions: OpenSSL 1.1.1i  8 Dec 2020, LZO 2.10,
2021-02-15T19:14:42.288+0100    WARN    openvpn: --ping should normally be used with --ping-restart or --ping-exit,
2021-02-15T19:14:42.293+0100    INFO    openvpn: TCP/UDP: Preserving recently used remote address: [AF_INET]185.122.168.249:1194,
2021-02-15T19:14:42.293+0100    INFO    openvpn: UDP link local: (not bound),
2021-02-15T19:14:42.294+0100    INFO    openvpn: UDP link remote: [AF_INET]185.122.168.249:1194,
2021-02-15T19:14:42.470+0100    INFO    openvpn: [nl402.nordvpn.com] Peer Connection Initiated with [AF_INET]185.122.168.249:1194,
2021-02-15T19:14:43.672+0100    INFO    openvpn: TUN/TAP device tun0 opened,
2021-02-15T19:14:43.672+0100    INFO    openvpn: /sbin/ip link set dev tun0 up mtu 1500,
2021-02-15T19:14:43.675+0100    INFO    openvpn: /sbin/ip addr add dev tun0 10.8.0.28/16 broadcast 10.8.255.255,
2021-02-15T19:14:43.680+0100    INFO    openvpn: Initialization Sequence Completed,
2021-02-15T19:14:43.680+0100    INFO    VPN routing IP address: 185.122.168.249,
2021-02-15T19:14:43.680+0100    INFO    dns over tls: downloading DNS over TLS cryptographic files,
2021-02-15T19:14:44.311+0100    INFO    healthcheck: healthy!,
2021-02-15T19:14:44.966+0100    INFO    dns over tls: downloading hostnames and IP block lists,
2021-02-15T19:14:45.761+0100    INFO    dns over tls: init module 0: validator,
2021-02-15T19:14:45.769+0100    INFO    dns over tls: init module 1: iterator,
2021-02-15T19:14:45.879+0100    INFO    dns over tls: start of service (unbound 1.10.1).,
2021-02-15T19:14:46.004+0100    INFO    dns over tls: generate keytag query _ta-4a5c-4f66. NULL IN,
2021-02-15T19:14:46.021+0100    INFO    dns over tls: generate keytag query _ta-4a5c-4f66. NULL IN,
2021-02-15T19:14:46.563+0100    INFO    dns over tls: ready,
2021-02-15T19:14:52.337+0100    INFO    ip getter: Public IP address is 185.122.168.249 (Netherlands, North Holland, Amsterdam),
2021-02-15T19:14:52.393+0100    INFO    You are running 1 commit behind the most recent latest,
qdm12 commented 3 years ago

Try with netherlands and server number 828 and it will fail. That's an error on NordVPN side I think. You can even see their hostname is nl828.nordvpn.com (nl for netherlands) and it Resolves to an IP address based in London. That could also be an error in the geoip database of ipinfo.io mapping incorrectly that IP address.

aneurinprice commented 1 year ago

For anyone who wants a quick and easy way to get this to work, All you have to do is download a NordVpn OpenVPN config for your chosen server and follow the instructions on this project for using an openvpn config.