Unofficial community project · MIT licensed
VPN Gate Client for Linux
A Linux GUI for free VPN Gate servers — one-click connection, verified IP, and zero leftover profiles.
The name “VPN Gate Client” officially belongs to a Windows-only freeware by the VPN Gate Academic Experiment Project — Windows users should get it from the official download page. macOS, iPhone/iPad and Android are covered by the official step-by-step how-tos. No official client exists for Linux — this app fills exactly that gap. It is independent and unaffiliated.
Features
Everything handled, nothing left behind
Live list with country, ping, speed, score, sessions and uptime — sortable, filterable, searchable, cached for instant startup.
A single CONNECT / DISCONNECT button with busy state. Never a half-connected UI, never a stale label.
VPN Gate configs are auto-patched (AES-128-CBC, SHA1) so they import cleanly on OpenVPN 2.6 / OpenSSL 3.
Public-IP lookup retries after connect while routes settle; tunnel IP shown meanwhile instead of a bare “?”.
Disconnect deletes the NetworkManager profile, staged certificates and cached files — then verifies nothing remains.
Every startup removes inactive profiles orphaned by a previous crash, with an on-screen report.
--list, --status, --dry-run-host and --disconnect-all for scripting and diagnostics.
Dependency-declared .deb with app-grid entry, hicolor icon and manpage. Python + PyGObject only.
Install
Up and running in a minute
Option A — Download from Releases (recommended)
Get the .deb from the Releases page. No build tools needed.
sudo dpkg -i vpngate-client_1.0-1_all.deb
Option B — Build from source
./packaging/build-deb.sh sudo dpkg -i packaging/vpngate-client_1.0-1_all.deb
Option C — Run from source (development)
sudo apt install python3-gi gir1.2-gtk-4.0 gir1.2-adw-1 network-manager-openvpn openvpn python3 vpngate_gtk.py
Usage
Four steps to a tunnel
- Open the app from the app grid (“VPN Gate Client”) or run
vpngate-client. The list loads instantly from cache, then refreshes silently. - Pick a server — filter by country, sort by ping / score / speed, or type to search.
- Hit CONNECT. Status and public IP appear bottom-right once verified.
- Hit DISCONNECT when done — profile and files are removed, route returns to normal.
FAQ
Troubleshooting
First refresh takes ~1 minute
“IP: ?” right after connecting
“Connect failed — try another server”
IP doesn't change after connect
App-grid entry missing after install
Security notes
Know what you're trusting
- Volunteer servers. Logging policy is typically 2 weeks — choose servers accordingly.
- No killswitch in v1. Traffic may leak to the direct route if the tunnel drops. Not for high-risk activity.
- 0600 hygiene. Credentials and auth files are owner-only; the VPN password lives in the NetworkManager profile, never in this repo.
License
MIT, with one trademark note
License
MIT
Free to use, modify and redistribute — code, styling and icon included. See the LICENSE file in the repo.
Trademarks
Not affiliated
Styling is merely BMW M-inspired. BMW M marks belong to BMW AG; VPN Gate belongs to its academic project. No affiliation or endorsement implied.
Source
Open on GitHub
Issues and pull requests welcome. Four Python modules, standard library + PyGObject only.
Open repo