VPNGeek
Purchase
Guides VPN APPS

Linux: connect with the VPNGeek CLI

Ubuntu/DebianFedora/RHELVPNGeek CLI v3+ 8 min · Updated Jun 2026

Install the VPNGeek command-line client, connect to a location, enable the kill switch, and autostart it with systemd.

On Linux, VPNGeek ships as a command-line client backed by a lightweight system daemon. It gives you the same tunnel, locations, and kill switch as the desktop apps, driven entirely from the terminal — which also makes it ideal for headless servers and automation. This guide installs the client, logs in, connects, locks down traffic with the kill switch, and sets the tunnel to come up on boot.

Before you start

  • A VPNGeek subscription and your account credentials.
  • A 64-bit Debian/Ubuntu or Fedora/RHEL system with sudo access.
  • An init system with systemd (the default on all current mainstream distributions).

1. Install the client

Add the VPNGeek repository and install the package. On Debian and Ubuntu:

# Debian / Ubuntu
curl -fsSL https://repo.vpngeek.com/install.sh | sudo bash
sudo apt update && sudo apt install vpngeek

# Fedora / RHEL
sudo dnf config-manager --add-repo https://repo.vpngeek.com/rpm/vpngeek.repo
sudo dnf install vpngeek

Installation registers and starts the vpngeekd daemon. Confirm the client is on your path and can reach the daemon:

vpngeek --version
vpngeek status # expect: "Disconnected"

2. Log in

Authenticate the client with your account. This stores a token locally so you do not need to re-enter your password on every connect.

vpngeek login --email you@example.com
# you will be prompted for your password (and 2FA code if enabled)
Note. On a headless server with no browser, use "vpngeek login --token" and paste an access token generated from your dashboard under Account > CLI tokens.

3. List and select a location

See what is available, then connect. With no argument, connect chooses the fastest server automatically; pass a country or city code to pin a location.

vpngeek locations # list countries and city codes
vpngeek connect # fastest server automatically
vpngeek connect us-nyc # pin a specific city
vpngeek status # confirm the active server and IP

4. Enable the kill switch

The kill switch blocks all traffic that is not inside the tunnel, so nothing leaks if the connection drops. Turn it on once and the daemon enforces it across reconnects.

vpngeek set killswitch on
vpngeek settings # verify killswitch: enabled
Warning. With the kill switch on, disconnecting the VPN also cuts your internet by design. Run "vpngeek set killswitch off" before "vpngeek disconnect" if you need normal connectivity without the tunnel.

5. Autostart on boot with systemd

To bring the tunnel up automatically at boot, enable the connection daemon and tell the client to auto-connect. The package ships a vpngeekd unit; enabling it starts the daemon at boot, and the auto-connect setting makes it establish the tunnel as soon as the daemon starts.

# start the daemon at boot
sudo systemctl enable --now vpngeekd

# auto-connect whenever the daemon starts
vpngeek set autoconnect on
vpngeek set autoconnect-location us-nyc # optional: pin a location

# verify after a reboot
systemctl status vpngeekd
vpngeek status

Troubleshooting

"Cannot connect to daemon"

The vpngeekd service is not running. Start it with sudo systemctl start vpngeekd and check journalctl -u vpngeekd for errors.

DNS still resolves to my ISP

Another resolver (often systemd-resolved or a VPN-unaware NetworkManager profile) is overriding the tunnel's DNS. Reconnect after enabling the kill switch, which pins DNS to the tunnel.

Kill switch left me offline after a crash

The rules persist even if the client exits unexpectedly. Restore connectivity with vpngeek set killswitch off, or simply reconnect to re-establish the tunnel.

Did this guide get you connected?