Skip to content

run NordVPN in a container and expose as a SOCKS/HTTP proxy

Notifications You must be signed in to change notification settings

creaktive/nordvpn-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nordvpn-proxy

Description

Sometimes you want to hide your IP, but just for one specific application. Or a couple; but certainly you do not want to completely switch to another network.

If your application does support SOCKS (or even HTTP) proxy, nordvpn-proxy is what you need!

However, please be aware that this is a very hacky solution, suitable for private use but definitely not production-ready (for whatever definition of "production"). You might want to check the links in References for other solutions.

Usage

First, go to the Nord Account dashboard to get the service credentials:

Nord Account dashboard screenshot

Paste the credentials to the auth.txt file within the same directory as Dockerfile. Username is the first line; password is the second.

Now, build the thing (note that the aforementioned auth.txt file will be stored in plaintext within the container!):

docker build -t nordvpn-proxy .

Customize the parameters (--env arguments are optional; default is to use TCP and a recommended server) and run the container:

docker run -it --privileged --rm \
    --dns=8.8.8.8 \
    --env SERVER=nl868.nordvpn.com \
    --env PROTOCOL=udp \
    -p 1080:1080 \
    -p 3128:3128 \
    nordvpn-proxy

You can also specify just the 2 digits of the country code and a random server from that country will be selected:

docker run -it --privileged --rm --dns=8.8.8.8 --env SERVER=de -p 1080:1080 nordvpn-proxy

Test it!

curl -x socks5h://127.0.0.1:1080 http://whatismyip.akamai.com
curl -x http://127.0.0.1:3128 http://whatismyip.akamai.com

References