Skip to content
VPNmine
SETUP GUIDES

How to use a VPN on Steam Deck

SteamOS is Arch Linux with NetworkManager, so a Steam Deck imports a WireGuard configuration file directly. Switch to desktop mode, import the config through the network settings, and the tunnel is then available from game mode without any further work.

4 min read

Illustration of a game controller and the Steam mark, joined by a dashed tunnel line on a dark grid.

The Steam Deck runs SteamOS, which is Arch Linux with a game-focused shell on top. That means it has NetworkManager, it has the kernel's WireGuard support, and importing a tunnel is a two-minute job that does not require touching the read-only system partition or installing anything.

The easy route: import a config in desktop mode

  1. Hold the power button and choose Switch to Desktop.
  2. Get the .conf file onto the device. A USB drive, a microSD card or downloading it in the browser all work.
  3. Open a terminal (Konsole) and import it:
nmcli connection import type wireguard file ~/Downloads/vpnmine.conf
  1. Bring it up:
nmcli connection up vpnmine
  1. Set it to connect automatically if you want it always on:
nmcli connection modify vpnmine connection.autoconnect yes

Switch back to game mode. The tunnel stays up, and it now appears in the network settings under the quick access menu.

Why not a provider's Linux app

Most do not have one, and the ones that do usually ship a .deb or an AppImage that expects a writable filesystem. SteamOS's root partition is read-only and is wiped by system updates, so anything installed with pacman after steamos-readonly disable is gone after the next update.

NetworkManager's import survives updates because the connection profile lives in /etc/NetworkManager/system-connections, which is preserved. That is the whole reason to prefer this route.

Flatpak is the other update-proof option, and if a provider ships a Flatpak it is a reasonable alternative. Very few do.

The GUI route, if you prefer it

In desktop mode, open the network icon in the system tray, choose Configure Network Connections, then the plus button, then Import VPN connection, and select the .conf file. It is the same thing nmcli does with more clicking, and it fails less obviously when the file has a field KDE does not expect.

What to expect for speed

A Steam Deck's CPU handles WireGuard comfortably — it is a modern x86 part with AES acceleration, and ChaCha20-Poly1305 is fast on it regardless. The tunnel is not the bottleneck. Distance to the server is.

Run the speed test in desktop mode with the tunnel down and again with it up. If the loss is large, you have picked a distant server rather than hit a hardware limit.

Latency, and why this matters more here than on a desktop

A VPN adds the round trip to the server on top of the round trip to the game. For single-player and for cloud saves that is irrelevant. For anything competitive it is not, and no configuration recovers it: the packets genuinely travel further.

Pick the closest server if the tunnel has to be on while gaming, or bring it down for those sessions. Both are legitimate; pretending a VPN is latency-free is not.

Downloads and Steam

Steam's content servers are distributed, and Steam picks a download region based on where it thinks you are. With a tunnel up, it may pick a region on the other side of the world and download slowly from it.

If downloads crawl with the VPN on, check Steam, Settings, Downloads, Download Region and set it manually rather than blaming the tunnel.

Game mode caveats

  • The quick access menu shows the tunnel's state, but it cannot create or edit one. Configuration is a desktop mode job.
  • A tunnel set to autoconnect comes up before the shell finishes loading, which occasionally shows as a brief "no network" state at boot.
  • If the Deck sleeps for a long period, the tunnel may need a reconnect. NetworkManager usually handles it; if it does not, toggling Wi-Fi off and on from the quick access menu is faster than going back to desktop mode.

Config hygiene

The file contains a private key that identifies one peer. Do not copy it to another machine, and do not leave it in ~/Downloads after importing it — NetworkManager has already stored what it needs. Providers issue these per device; VPNmine's are generated per device and covered on the Linux page.

Running it only for some traffic

SteamOS has no per-app tunnelling, and there is no clean way to add one. If you want the store and your browser tunnelled while a game connects directly, the practical approach is a split tunnel by destination rather than by application: narrow AllowedIPs in the config to the ranges you want covered, and leave everything else on the normal route.

That is fiddly to maintain and easy to get wrong in the unsafe direction — a range you forgot is a range that is not covered — so for most people the honest answer is to run the tunnel fully on or fully off, and to toggle it.

When SteamOS updates break things

A SteamOS update replaces the root filesystem. Anything installed with pacman is gone; NetworkManager connection profiles are not, because they live on the writable partition. If a tunnel stops working right after an update, check whether it was set up through NetworkManager or through a package you installed by hand, because the second one has simply been removed.

Reimporting the same .conf file restores it in under a minute either way, which is a good reason to keep a copy somewhere other than the Deck.

Sources

  1. Valve — Steam Deck desktop mode
  2. NetworkManager — nmcli manual
  3. WireGuard — quick start

Try it on the network this was written from

VPNmine is a free no-logs VPN running its own WireGuard servers, with native apps for Windows, macOS, Android, iOS, Android TV and Apple TV. No ads, no card.

Get VPNmine