2c73672e64a907dfccea1b7ca8b13fe4395e7d9b
Gluetun VPN client
Lightweight swiss-knife-like VPN client to tunnel to Cyberghost, FastestVPN, HideMyAss, IPVanish, IVPN, Mullvad, NordVPN, Privado, Private Internet Access, PrivateVPN, ProtonVPN, PureVPN, Surfshark, TorGuard, VPNUnlimited, VyprVPN and Windscribe VPN servers using Go, OpenVPN, iptables, DNS over TLS, ShadowSocks and an HTTP proxy
ANNOUNCEMENT:
Quick links
-
Problem or suggestion?
-
Happy?
- Sponsor me on github.com/sponsors/qdm12
- Donate to paypal.me/qmcgaw
- Drop me an email
-
Video:
Features
- Based on Alpine 3.13 for a small Docker image of 54MB
- Supports: Cyberghost, FastestVPN, HideMyAss, IPVanish, IVPN, Mullvad, NordVPN, Privado, Private Internet Access, PrivateVPN, ProtonVPN, PureVPN, Surfshark, TorGuard, VPNUnlimited, Vyprvpn, Windscribe servers
- Supports Openvpn only for now
- DNS over TLS baked in with service provider(s) of your choice
- DNS fine blocking of malicious/ads/surveillance hostnames and IP addresses, with live update every 24 hours
- Choose the vpn network protocol,
udportcp - Built in firewall kill switch to allow traffic only with needed the VPN servers and LAN devices
- Built in Shadowsocks proxy (protocol based on SOCKS5 with an encryption layer, tunnels TCP+UDP)
- Built in HTTP proxy (tunnels HTTP and HTTPS through TCP)
- Connect other containers to it
- Connect LAN devices to it
- Compatible with amd64, i686 (32 bit), ARM 64 bit, ARM 32 bit v6 and v7, and even ppc64le 🎆
- VPN server side port forwarding for Private Internet Access and Vyprvpn
- Possibility of split horizon DNS by selecting multiple DNS over TLS providers
- Subprograms all drop root privileges once launched
- Subprograms output streams are all merged together
- Can work as a Kubernetes sidecar container, thanks @rorph
Setup
-
Ensure your
tunkernel module is setup:sudo modprobe tun # or, if you don't have modprobe, with sudo insmod /lib/modules/tun.ko -
Extra steps:
-
Launch the container with:
docker run -d --name gluetun --cap-add=NET_ADMIN \ -e VPNSP="private internet access" -e REGION="CA Montreal" \ -e OPENVPN_USER=js89ds7 -e OPENVPN_PASSWORD=8fd9s239G \ -v /yourpath:/gluetun \ qmcgaw/gluetunor use docker-compose.yml with:
docker-compose up -dYou should probably check the many environment variables available to adapt the container to your needs.
Further setup
The following points are all optional but should give you insights on all the possibilities with this container.
- Test your setup
- How to connect other containers and devices to Gluetun
- VPN server side port forwarding
- HTTP control server to automate things, restart Openvpn etc.
- Update the image with
docker pull qmcgaw/gluetun:latest. See this Wiki document for Docker tags available. - Use Docker secrets to read your credentials instead of environment variables
License
Description
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.
alpinecyberghostdns-over-tlsdockergolanghttp-proxymullvadnordvpnopenvpnpiaprivadoprivate-internet-accesspurevpnshadowsockssurfsharkvpn-clientvyprvpnwindscribewireguard
Readme
MIT
33 MiB
Languages
Go
99.4%
Dockerfile
0.6%
