Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

servers.json - ProtonVPN - US Free - Incorrect data #1126

Closed
TuRDMaN opened this issue Aug 29, 2022 · 6 comments
Closed

servers.json - ProtonVPN - US Free - Incorrect data #1126

TuRDMaN opened this issue Aug 29, 2022 · 6 comments

Comments

@TuRDMaN
Copy link

TuRDMaN commented Aug 29, 2022

Is this urgent?

Yes

Host OS

unRAID

CPU arch

x86_64

VPN service provider

ProtonVPN

What are you using to run the container

docker-compose

What is the version of Gluetun

Running version latest built on 2022-08-27T18:41:48.346Z (commit 07282f4)

What's the problem 🤔

There is a problem with the servers.json file with ProtonVPN.

Free servers work fine for Netherlands, but the server information for US is incorrect.

The servers.json file only includes 1 choice for US Free
{ "vpn": "openvpn", "country": "United States", "server_name": "US-FREE#24", "hostname": "node-us-41.protonvpn.net", "tcp": true, "udp": true, "free": true, "ips": [ "172.98.93.226" ] }

It is not possible to log in to that server with a free account (authentication error)

It should be:
{ "vpn": "openvpn", "country": "United States", "server_name": "US-FREE#2", "hostname": "us-free-02.protonvpn.net", "tcp": true, "udp": true, "free": true, "ips": [ "84.17.45.156" ] }
Or any of the other free US servers.

Trying to update the servers.json file manually doesn't work either as the container overwrites it automatically when it starts.

Share your logs

2022-08-29T14:39:21-04:00 INFO [vpn] starting
2022-08-29T14:39:21-04:00 INFO [firewall] allowing VPN connection...
2022-08-29T14:39:21-04:00 INFO [openvpn] OpenVPN 2.5.6 x86_64-alpine-linux-musl [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [MH/PKTINFO] [AEAD] built on Apr 17 2022
2022-08-29T14:39:21-04:00 INFO [openvpn] library versions: OpenSSL 1.1.1q  5 Jul 2022, LZO 2.10
2022-08-29T14:39:22-04:00 INFO [openvpn] TCP/UDP: Preserving recently used remote address: [AF_INET]172.98.93.226:1194
2022-08-29T14:39:22-04:00 INFO [openvpn] UDP link local: (not bound)
2022-08-29T14:39:22-04:00 INFO [openvpn] UDP link remote: [AF_INET]172.98.93.226:1194
2022-08-29T14:39:24-04:00 WARN [openvpn] 'link-mtu' is used inconsistently, local='link-mtu 1633', remote='link-mtu 1634'
2022-08-29T14:39:24-04:00 WARN [openvpn] 'comp-lzo' is present in remote config but missing in local config, remote='comp-lzo'
2022-08-29T14:39:24-04:00 INFO [openvpn] [node-us-41.protonvpn.net] Peer Connection Initiated with [AF_INET]172.98.93.226:1194
2022-08-29T14:39:31-04:00 ERROR [openvpn] AUTH: Received control message: AUTH_FAILED

Your credentials might be wrong 🤨


2022-08-29T14:39:31-04:00 INFO [openvpn] SIGUSR1[soft,auth-failure] received, process restarting
2022-08-29T14:39:32-04:00 INFO [healthcheck] program has been unhealthy for 11s: restarting VPN
2022-08-29T14:39:32-04:00 INFO [vpn] stopping

Share your configuration

No response

@qdm12
Copy link
Owner

qdm12 commented Aug 29, 2022

Server information is obtained from https://api.protonmail.ch/vpn/logicals and indeed I see FREE#24 there. As you mentioned, it's also part of gluetun's servers.json but with hostname node-us-41.protonvpn.net. I'd say it was likely a bug on their API before.

Gluetun also sets the server as free if it finds free in the server name

if strings.Contains(hostname, "free") || strings.Contains(lowerCaseName, "free") {

have you tried updating the servers yourself (see the wiki page)?

FYI the servers.json file persisted is here to allow to update servers yourself by using gluetun update code. You should not really change it manually. BUT you can, and you would need to bump the timestamp of your protonvpn servers in servers.json to a larger one to the one already set. Although still undocumented, you can also set the custom field "keep": true (I'm 90% sure on the field name) so that gluetun doesn't override it later on servers updates.

@TuRDMaN
Copy link
Author

TuRDMaN commented Aug 29, 2022

Thanks for the info!

Probably not the best solution, but I added the correct server information into my servers.json file with keep: true and bumped the timestamp, and now it's working fine.

@qdm12
Copy link
Owner

qdm12 commented Aug 30, 2022

Re-checking the server data, server US-FREE#24 has domain us-free-24.protonvpn.net but this is its logical domain name. Under that logical server is one physical server node-us-41.protonvpn.net with entry ip 172.98.93.226:

    {
      "Name": "US-FREE#24",
      // ...
      "Domain": "us-free-24.protonvpn.net",
      // ...
      "Status": 0,
      "Servers": [
        {
          "EntryIP": "172.98.93.226",
          "ExitIP": "172.98.93.227",
          "Domain": "node-us-41.protonvpn.net",
          // ...
        },

There are also two other free servers present in servers.json:

  • node-jp-13.protonvpn.net (JP-FREE#3)
  • node-nl-17.protonvpn.net (NL-FREE#26).

Updating the servers data as I suggested, US-FREE#24 got removed since it's now offline ("Status": 0). That's why you could not connect. It was not a problem on Gluetun's end, just the vpn server going down. In the future, please try updating the servers automatically https://github.com/qdm12/gluetun/wiki/Updating-servers before opening an issue if you can no longer connect. It's also easier compared to manually fiddling with servers.json which can break the setup in the future.

Updating the servers data, there are also additional free servers JP-FREE#11 , NL-FREE#125, NL-FREE#126, NL-FREE#127, NL-FREE#128, NL-FREE#79 and US-FREE#49.

@qdm12 qdm12 closed this as completed Aug 30, 2022
@TuRDMaN
Copy link
Author

TuRDMaN commented Aug 30, 2022

I did run docker run -it --rm -v /yourpath:/gluetun qmcgaw/gluetun update -enduser -providers protonvpn but it left that one non-working US free server in the list, and only that one (for US).

There are many other free US servers available to be used (information can be found in .ovpn files), but they don't get populated with the update command, so the only way I can see to do it is to manually add them to the servers.json file.

In any case, that's likely not something worth fiddling with on your end, so I'll just stick with my kludgey solution now that I know what to do.

@qdm12
Copy link
Owner

qdm12 commented Aug 30, 2022

but it left that one non-working US free server in the list, and only that one (for US).

Ah my bad, I thought you haven't tried it. That's strange, it did update the US one to another one for me as mentioned above. Although yes there is only one US.

There are many other free US servers available to be used (information can be found in .ovpn files)

Where do you get the openvpn files? Are they public? Maybe I can change the update code to get info from both sources. Although ideally Protonvpn could fix their API to return all their US free servers instead of just one 😕

@TuRDMaN
Copy link
Author

TuRDMaN commented Sep 23, 2022

Oops, sorry lost track of this.

You need to log in to an account (can be a free account) to access all of the OVPN files: https://protonvpn.com/support/vpn-config-download/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants