I’m having difficulty setting up Nord VPN Wireguard following these instructions on my GL.iNet Beryl (GL-MT3000) router updated with latest firmware 4.7 in beta 3.
So far:
Used web admin panel on browser to do the router configuration. Setup Beryl as repeater. Works perfectly.
Generated Nord VPN access token on my Nord account, inserted to Gl.iNet admin which populated NordVPN servers successfully and clicked “Select all” on the my country’s servers.
However, now I’m at an empty screen and it doesn’t load the servers.
What’s happened? NordVPN support chat responded this:
"At this time, the NordLynx protocol is only available on Linux, iOS, Android, macOS, and Windows NordVPN applications. Our developers are working on providing manual connection methods. However, at this time, I am unable to provide any ETA as to when the protocol availability will be expanded."
I asked, why would Gl.iNet create a tutorial if it wasn’t supported. They said:
“It could work, but we do not support it internally and therefore do not troubleshoot it".
I was on 4.7 Beta 2 when I set up Nord and the list was populated. It had all of their servers an alpha order. I think it was trying to be smart about the list, as it had the closest location in my country already expanded. Did the access token handshaking work? The list page was right after that.
Took the list of 20 pre-populated servers on the GL.iNet admin panel that didn’t appear after clicking “Apply.”
Trusted this link: Github, went to web interface option (CTRL/CMD + F ‘Web Version’) and inserted my NordVPN manual token to get the private one.
(Optional, because I’m lazy): Wrote a Python script that cross-referenced the list of 20 servers from step 2, extracted them from their folders, and replaced the placeholder [YOUR_PRIVATE_KEY] in the .conf file with my actual private key (generated from the link above). It identified 19 out of the 20 servers.
(Optional) To scratch my itch, I manually added a server one number higher than the pre-populated GL.iNet admin one that said ‘No data’ after clicking ‘Apply’ (i.e., the list said XX21, I manually added XX22 and modified the .conf file’s private key placeholder).
Added all of the .conf files to the GL.iNet admin under ‘WireGuard Client’ as a new group.
(Optional): Pasted the server names and IPs into ChatGPT to tidy them up for a ping test. I then ran a ping test on all the servers from my Mac’s terminal. Interestingly, the 20th server I added manually performed the best, so I settled on that one.
Final results on the 20th server:
Download Speed (Mbps):
With WireGuard: 142.61 Mbps
Without WireGuard: 149.16 Mbps
Percentage Difference: 4.39%
Upload Speed (Mbps):
With WireGuard: 29.44 Mbps
Without WireGuard: 31.04 Mbps
Percentage Difference: 5.15%
Latency (ms):
With WireGuard: 10 ms
Without WireGuard: 7 ms
Percentage Difference: 42.86%
Summary:
The speed differences are minimal, while the latency increase is more noticeable but still within an acceptable range for stability. In short, NordVPN’s WireGuard can definitely be configured on GL.iNet routers.
However, one issue is that I don’t have an 'Update Servers' option like you would with a direct integration between the GL.iNet WireGuard Client and NordVPN. If a server changes, I’ll have to run this process again.