OpenVPN 3 Linux Client

A native GTK4 GUI and companion CLI for OpenVPN 3 Linux — full D-Bus integration, no vendor lock-in.

curl -fsSL https://raw.githubusercontent.com/hassan-mehedi/openvpn-linux-client-gui/main/install.sh | bash
OpenVPN 3 Linux Client – Profiles view

Everything you need

Profile Management

Import from .ovpn file, HTTPS URL, or openvpn:// token URL. Search, rename, and delete profiles.

Connection Lifecycle

Connect, disconnect, pause, resume, and restart with a formal state machine. Credential and MFA prompts handled automatically.

Live Telemetry

Real-time bytes transferred, packet counts, latency, and a live throughput rate graph per active session.

Diagnostics

Service reachability checks, guided recovery workflows, and one-click redacted support bundle export.

Proxy Management

Save and manage HTTP/SOCKS proxies, assign them per profile, or override at connect time.

Companion CLI

Full automation surface for profiles, sessions, settings, proxies, and diagnostics. JSON output supported.

Desktop Integration

.ovpn file association, openvpn:// URI handler, StatusNotifier system tray, XDG autostart, and AppStream metadata.

System Mode

Optional systemd user service and polkit policy for boot-time, unattended VPN connections.

Install

# Install system dependencies
sudo dnf install python3-gobject gtk4 libadwaita python3-dbus libsecret openvpn3-client
# Install the GUI
curl -fsSL https://raw.githubusercontent.com/hassan-mehedi/openvpn-linux-client-gui/main/install.sh | bash
# Install system dependencies
sudo apt install gir1.2-gtk-4.0 gir1.2-adw-1 gir1.2-secret-1 python3-gi python3-dbus openvpn3
# Install the GUI
curl -fsSL https://raw.githubusercontent.com/hassan-mehedi/openvpn-linux-client-gui/main/install.sh | bash
# Clone and install dev dependencies
git clone https://github.com/hassan-mehedi/openvpn-linux-client-gui.git
cd openvpn3-client-linux
uv sync --dev