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.

openvpndns-over-tlsmullvadwindscribeprivate-internet-accessdockeralpinesurfsharkcyberghostgolangshadowsocksnordvpn
Star 增长趋势
Star
15.4k
Forks
617
周增长
+65
Issues
310
5k10k15k
2018年4月2021年1月2023年11月2026年9月
制品库Go Modules
README

Gluetun VPN client

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

⚠️ This and gluetun-wiki are the only websites for Gluetun, other websites claiming to be official are scams ⚠️

🗯️ this repository will be migrated to github.com/passteque/gluetun on 2026-05-21, which is a Github organization under my sole control, so don't get alarmed if you get redirected in the coming days 😉 Reason being migrating Github sponsors to the Open source collective due to my personal situation, basically annoying paperwork. On the plus side, it will be more transparent and funds donated will only be used for the project. The Docker image names will remain the same.

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

Code size GitHub repo size Go version

Visitors count

Features

  • Based on Alpine 3.23 for a small Docker image of 43.1MB
  • Supports: AirVPN, Cyberghost, ExpressVPN, FastestVPN, Giganews, HideMyAss, IPVanish, IVPN, Mullvad (Wireguard only), NordVPN, Privado, Private Internet Access, PrivateVPN, ProtonVPN, PureVPN, SlickVPN, Surfshark, TorGuard, VPNSecure.me, VPNUnlimited, Vyprvpn, Windscribe servers
  • Supports OpenVPN for all providers listed
  • Supports Wireguard both kernelspace and userspace
    • For AirVPN, FastestVPN, Ivpn, Mullvad, NordVPN, ProtonVPN, Surfshark and Windscribe
    • For Cyberghost, Private Internet Access, PrivateVPN, PureVPN, Torguard, VPN Unlimited and VyprVPN using the custom provider
    • For custom Wireguard configurations using the custom provider
    • More in progress, see #134
  • Supports AmneziaWG only with the custom provider for now
  • DNS over TLS baked in with service provider(s) of your choice
  • DNS fine blocking of malicious/ads 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 server (protocol based on SOCKS5 with an encryption layer, tunnels TCP+UDP)
  • Built in Socks5 proxy server (tunnels TCP+UDP) - partial credits to @angelakis and @adjscent
  • 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, PrivateVPN and ProtonVPN
  • Possibility of split horizon DNS by selecting multiple DNS over TLS providers
  • 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:

---
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

Fun graphs

Star History Chart

License

MIT

相关仓库
StreisandEffect/streisand

Streisand sets up a new server running your choice of WireGuard, OpenConnect, OpenSSH, OpenVPN, Shadowsocks, sslh, Stunnel, or a Tor bridge. It also generates custom instructions for all of these services. At the end of the run you are given an HTML file with instructions that can be shared with friends, family members, and fellow activists.

ShellOthervpnansible
twitter.com/streisandvpn
23.5k1.9k
Nyr/openvpn-install

OpenVPN road warrior installer for Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS and Fedora

ShellcliMIT Licenseopenvpnvpn
20.6k5.1k
angristan/openvpn-install

Set up your own OpenVPN server on Debian, Ubuntu, Fedora, CentOS, Arch Linux and more

ShellMIT Licenseopenvpnvpn
stanislas.blog/2019/01/how-to-setup-vpn-server-wireguard-nat-ipv6/
16.1k3.3k
amnezia-vpn/amnezia-client

Amnezia VPN Client (Desktop+Mobile)

C++GNU General Public License v3.0vpnvpn-client
amnezia.org
14.9k1.1k
SoftEtherVPN/SoftEtherVPN

Cross-platform multi-protocol VPN software. Pull requests are welcome. The stable version is available at https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.

CApache License 2.0vpn-tunnelvpn-protocols
13.5k2.8k
kylemanna/docker-openvpn

🔒 OpenVPN server in a Docker container complete with an EasyRSA PKI CA

ShellMIT Licenseopenvpn-serverdocker-container
hub.docker.com/r/kylemanna/openvpn/
9.1k2.4k
pivpn/pivpn

The Simplest VPN installer, designed for Raspberry Pi

ShellcliMIT Licenseopenvpnopenvpn-installer
pivpn.io
8k683
mullvad/mullvadvpn-app

The Mullvad VPN client app for desktop and mobile

Rustcrates.ioappGNU General Public License v3.0rustelectron
mullvad.net
7.5k520
haugene/docker-transmission-openvpn

Docker container running Transmission torrent client with WebUI over an OpenVPN tunnel

ShellGNU General Public License v3.0transmissionopenvpn
4.6k1.2k
cbeuw/Cloak

A censorship circumvention tool to evade detection by authoritarian state adversaries

GoGo ModulesGNU General Public License v3.0shadowsockscensorship-circumvention
4.1k359
ProtonVPN/android-app

Official ProtonVPN Android app

KotlinGNU General Public License v3.0strongswanprotonvpn
protonvpn.com/download-android
4k501
schwabe/ics-openvpn

OpenVPN for Android

Cappandroidopenvpn
4k1.4k