• Stars
    star
    5,406
  • Rank 7,223 (Top 0.2 %)
  • Language
    Go
  • License
    MIT License
  • Created about 6 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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.

Gluetun VPN client

Lightweight swiss-knife-like VPN client to multiple VPN service providers

Title image

Build status

Docker pulls qmcgaw/gluetun Docker pulls qmcgaw/private-internet-access

Docker stars qmcgaw/gluetun Docker stars qmcgaw/private-internet-access

Last release Last Docker tag Last release size GitHub last release date Commits since release

Latest size

GitHub last commit GitHub commit activity GitHub closed PRs GitHub issues GitHub closed issues

Lines of code Code size GitHub repo size Go version

Visitors count

Quick links

Features

  • Based on Alpine 3.18 for a small Docker image of 35.6MB
  • Supports: AirVPN, Cyberghost, ExpressVPN, FastestVPN, HideMyAss, IPVanish, IVPN, Mullvad, NordVPN, Perfect Privacy, Privado, Private Internet Access, PrivateVPN, ProtonVPN, PureVPN, SlickVPN, Surfshark, TorGuard, VPNSecure.me, VPNUnlimited, Vyprvpn, WeVPN, Windscribe servers
  • Supports OpenVPN for all providers listed
  • Supports Wireguard both kernelspace and userspace
    • For AirVPN, Ivpn, Mullvad, NordVPN, Surfshark and Windscribe
    • For ProtonVPN, PureVPN, Torguard, VPN Unlimited and WeVPN using the custom provider
    • For custom Wireguard configurations using the custom provider
    • More in progress, see #134
  • 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, udp or tcp
  • 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 🎆
  • Custom VPN server side port forwarding for Private Internet Access
  • Possibility of split horizon DNS by selecting multiple DNS over TLS providers
  • Unbound subprogram drops root privileges once launched
  • Can work as a Kubernetes sidecar container, thanks @rorph

Setup

🎉 There are now instructions specific to each VPN provider with examples to help you get started as quickly as possible!

Go to the Wiki!

🐛 Found a bug in the Wiki?!

Here's a docker-compose.yml for the laziest:

version: "3"
services:
  gluetun:
    image: qmcgaw/gluetun
    # container_name: gluetun
    # line above must be uncommented to allow external containers to connect.
    # See https://github.com/qdm12/gluetun-wiki/blob/main/setup/connect-a-container-to-gluetun.md#external-container-to-gluetun
    cap_add:
      - NET_ADMIN
    devices:
      - /dev/net/tun:/dev/net/tun
    ports:
      - 8888:8888/tcp # HTTP proxy
      - 8388:8388/tcp # Shadowsocks
      - 8388:8388/udp # Shadowsocks
    volumes:
      - /yourpath:/gluetun
    environment:
      # See https://github.com/qdm12/gluetun-wiki/tree/main/setup#setup
      - VPN_SERVICE_PROVIDER=ivpn
      - VPN_TYPE=openvpn
      # OpenVPN:
      - OPENVPN_USER=
      - OPENVPN_PASSWORD=
      # Wireguard:
      # - WIREGUARD_PRIVATE_KEY=wOEI9rqqbDwnN8/Bpp22sVz48T71vJ4fYmFWujulwUU=
      # - WIREGUARD_ADDRESSES=10.64.222.21/32
      # Timezone for accurate log times
      - TZ=
      # Server list updater
      # See https://github.com/qdm12/gluetun-wiki/blob/main/setup/servers.md#update-the-vpn-servers-list
      - UPDATER_PERIOD=

🆕 Image also available as ghcr.io/qdm12/gluetun

License

MIT

More Repositories

1

ddns-updater

Container to update DNS records periodically with WebUI for many DNS providers
Go
1,122
star
2

godevcontainer

Golang development container for Visual Studio Code Remote Containers Development
Dockerfile
231
star
3

dns

Docker DNS server on steroids to access DNS-over-TLS from Cloudflare, Google, Quad9, Quadrant or CleanBrowsing
Go
204
star
4

latexdevcontainer

LaTeX development container for Visual Studio Code Remote Containers Development
Dockerfile
161
star
5

gluetun-wiki

Home to the Markdown Wiki page for Gluetun
149
star
6

deunhealth

Binary program to restart unhealthy Docker containers
Go
89
star
7

basedevcontainer

Base development Docker image used by other development Docker images
Shell
53
star
8

cod4-docker

Runs a Call of duty 4 Modern Warfare (cod4x) dedicated server in a Docker container.
Go
51
star
9

caddy-ui

UI for the Caddy proxy server
TypeScript
50
star
10

youtube-dl-docker

Download with youtube-dl using command line arguments or a configuration file + Automated updates
Shell
45
star
11

stackedit-docker

StackEdit 5.14.5 Server in a light Docker container
Go
41
star
12

caddy-scratch

Caddy server 2.0.0 / 1.0.5 on Docker Scratch, all in 18MB / 35MB
Dockerfile
37
star
13

rustdevcontainer

Rust development container for VSCode
Dockerfile
35
star
14

htmlspitter

NodeJS server to spit out HTML from loaded JS using Puppeteer
TypeScript
31
star
15

hbc

API of homomorphic binary operations such as binary comparisons or binary divisions using the library HElib
C++
27
star
16

reprint

Golang deep copying, THE RIGHT WAY ™️
Go
25
star
17

meemo

Run a lightweight Meemo server with database on Docker with docker-compose
Dockerfile
22
star
18

reactdevcontainer

React development container for Visual Studio Code
Dockerfile
20
star
19

port-checker

Simple Docker container to test if a port works using a Golang server
Go
20
star
20

btrfs-recover-scripts

Scripts to help you recover the latest files you have lost in a BTRFS volume
Shell
19
star
21

ss-server

Shadowsocks server to use with Docker and to integrate in other Go programs
Go
16
star
22

devtainr

Static binary tool to setup your development container in your repository
Go
14
star
23

binpot

The Docker based pot of binaries
Dockerfile
12
star
24

goshutdown

Go library to shutdown your goroutines gracefully and in a timely manner
Go
12
star
25

go-template

Golang server template
Go
12
star
26

VFIO-Arch-Guide

Windows 10 Parsec server setup for an Arch Linux host
12
star
27

golibs

Golang libraries I use across my Go projects
Go
10
star
28

docker-proxy-acl-alpine

A lightweight docker Unix socket proxy which restricts endpoint usage to allowed sections
Go
9
star
29

teamspeak-server-alpine

Minimalist Teamspeak 3 server Docker container
Shell
9
star
30

caddy-ui-server

Server responsible to serve the Caddy UI and communicate with the Caddy server API
Go
8
star
31

tinier

Make your videos, images and audio files tinier
Go
7
star
32

BitcoinUses

Big data analytics on how bitcoins are used since their creation
Java
7
star
33

xcputranslate

Simple CI translation from Docker CPU arch strings to other format
Go
7
star
34

welcome

Golang static binary I use on my servers when I login
Go
6
star
35

files

Periodically updated files and lists used by other projects and machines
6
star
36

pingodown

Introduces latency on a UDP port for gaming purposes
Go
5
star
37

gosplash

Go library to make initial log lines at a program start time
Go
5
star
38

updated

Go program to update files periodically
Go
5
star
39

rsync-docker

Rsync in 790KB Docker image & Rsync+SSH in 5.2MB Docker image
Shell
4
star
40

srv

srv is a small Go application to server static files over HTTP
Go
4
star
41

gotree

Go library to build tree of files and directories
Go
4
star
42

govalid

Go library to validate and convert strings
Go
3
star
43

BillSplitter

Mobile website app to split your bill at a venue (backend and frontend)
JavaScript
3
star
44

log

Go log library focused on humans and thread safety
Go
3
star
45

goservices

Go package to help manage Go long running services
Go
3
star
46

nodedevcontainer

Dockerfile
2
star
47

blog

Static blog using Hugo
HTML
2
star
48

qdm12

2
star
49

omada

Omada controller bundled in a Docker image
Dockerfile
2
star
50

iptables

Docker container to run your iptables rules
Dockerfile
2
star
51

spigot-docker

Lightweight Docker container for Spigot server
Dockerfile
2
star
52

ThumbGifs

Generates intervals GIFs from video files for any length
Python
2
star
53

hitinc

HTTP server counter to count visitors, claps, upvotes
1
star
54

Staminaputations

Python
1
star
55

Staminapp

Android mobile application for the Stamina system
Java
1
star
56

reactserv

A Go HTTP server to serve React compiled code (no SSR)
Go
1
star
57

My-Computing-course

This is a course I will give about computing in general for people new to computing
Python
1
star
58

gosettings

Go package providing helper functions for working with settings
Go
1
star
59

cli-template

A template for cross platform, cross CPU binary CLI tools
Go
1
star
60

courses

TeX
1
star
61

templates

Github templates for various programming languages I use often
1
star
62

reinstall

PowerShell
1
star
63

node-ts-template

NodeJS with Typescript template
JavaScript
1
star
64

wireguard-docker

Alpine docker image with Wireguard tooling (requires Wireguard in kernel)
Dockerfile
1
star