As you guys may know NordVPN supports wireguard for over a year now and unfortunately they're not planning to release configuration files anytime soon.
I thought sharing this tutorial here so people can at least enjoy the performance of wireguard.
All you need is linux machine or if you don't have one run it on vm.
I'm using ubuntu.
install following packages on your machine:
- wireguard
sudo apt install wireguard
- curl
sudo apt install curl
- jq
sudo apt install jq
- nettools
sudo apt install net-tools
- nordvpn
sh <(curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh)
log in to your nordvpn app via this command:
sudo nordvpn login
change connection protocol to nordlynx:
sudo nordvpn set technology nordlynx
connect to your preferred server
sudo nordvpn c nl #to connect Nederland as an example
now run command below and write down the ip somewhere, you'll need it later. (it will be your wireguard interface ip)
ifconfig nordlynx
now use the following command to get your private key:
sudo wg show nordlynx private-key
output should be something like this:
never share your private key with anyone!
now enter this command:
curl -s "https://api.nordvpn.com/v1/servers/recommendations?&filters\[servers_technologies\]\[identifier\]=wireguard_udp&limit=1"|jq -r '.[]|.hostname, .station, (.locations|.[]|.country|.city.name), (.locations|.[]|.country|.name), (.technologies|.[].metadata|.[].value), .load'
output should be like above picture which includes
nl826.nordvpn.com #your endpoint host
178.239.173.207 #endpoint host ip
Amsterdam #city
Netherlands #country
5PXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXF30= #public key which is different for each server
9 #server load at the time
keep that in mind the above command gives you the fastest server at the time if you're looking for the information of a specific server, connect to that country and copy the url above in your browser and from there search manually by the server number (e.g. nl833) using CTRL+F
now you can install following packages in your router to connect to wireguard using information you got from above
kmod-wireguard luci-app-wireguard luci-proto-wireguard wireguard wireguard-tools
once you installed above packages go to Luci -> network -> interfaces
add new interface using wireguard vpn protocol
once you created your interface, on general tab enter your private key and for the ip address enter the one you got using ifconfig command.
now hop on to the peers tab and enter your public key
for allowed ips use: 0.0.0.0/0
endpoint host: the ip of the vpn host you got at the last step
endpoint port: 51820
Persistent Keep Alive: 25
hit save and then save&apply then assign a firewall zone for it and add a dns! that's it.
the credit goes to @teymur88 from gl-inet forum for publishing this method.
also sorry for my grammar issues English is not my native language.