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
sudoaccess. - 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:
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 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.
# you will be prompted for your password (and 2FA code if enabled)
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 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 settings # verify killswitch: enabled
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.
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.
