Register a VPN device
Register a VPN device
Put a laptop or a phone on the WireGuard network, import the config, read the device status, and run the connection test when a site will not open.
No bench is published to the internet on a tunnel-only address. Register the
machine you work from once, and every bench you own becomes reachable from it.
Who this is for. Anybody who cannot reach a bench site, an SSH port or an
IDE on a private address.
Before you start. Install the WireGuard client for your platform. You need
nothing else. BenchPress generates the keys.
Steps
-
Open Devices in the sidebar. With no device registered, the page says
so twice — once in the banner and once in the list.Screenshot placeholder —
docs/images/user/vpn-devices/01-no-devices.png— The BenchPress Devices page at 1280 by 800 pixels with nothing registered. A yellow banner reads, This device is not on the VPN, Register the machine, import the config, then everything below becomes reachable, with an Add this device button. The Registered devices card reports 0 machines and an empty state reading, No machine can reach your benches yet. Register the one you work from and its config arrives immediately. The right column stacks a How this works card listing three numbered steps and a card headed A site will not open with three checks and a Run connection test button.The How this works card states the whole model in three lines.
# Step 1 Register the machine here — it gets a fixed IP on the lab network 2 Import the config into the WireGuard app, or scan the QR on a phone 3 Turn the tunnel on. Sites, SSH and VS Code resolve immediately -
Press Add this device. Name the machine and pick its type.
Screenshot placeholder —
docs/images/user/vpn-devices/02-add-device.png— The Add this device dialog over the Devices page at 1280 by 800 pixels. The dialog is headed Add this device with the line Two minutes, once per machine. A Device name field holds the typed text Sam — MacBook Pro and a Type dropdown reads Laptop. A dashed placeholder to the left reads, QR appears once the device is registered, and the Download .conf button beside it is grayed out. The paragraph explains that this device gets a fixed IP on the lab network and that nothing else routes through the tunnel. Cancel and Register and connect buttons sit at the foot.The name is yours to choose. It is the name every later message uses, so
name the machine, not the person.Type accepts one of seven values:
Mobile,Laptop,Desktop,
Tablet,Server,IoTandEmbedded.The QR panel is empty and Download .conf is disabled at this point. A
peer's config does not exist until the peer does. -
Press Register and connect. The config and its QR code appear in the
same dialog.Screenshot placeholder —
docs/images/user/vpn-devices/03-registered.png— The same dialog after registration, at 1280 by 800 pixels. A black and white QR code now fills the left panel, captioned Scan with the WireGuard app, and the Download .conf button beside it is enabled. A green line reads, Registered as 172.27.0.20. Import the config and turn the tunnel on. The Device name and Type fields are grayed out, and the foot of the dialog now offers a single Close button. Behind the dialog the banner has changed to report one machine registered, with a Check again button.The message names the address the device was given. In the frame it is
172.27.0.20.The QR code encodes the private key. Treat that image the way you treat
a password. Do not paste it into a chat channel and do not put it in a
ticket. -
Import the config on the machine.
Platform How to import macOS WireGuard app, Import tunnel(s) from file, pick the .confWindows WireGuard app, Import tunnel(s) from file, pick the .confLinux Save to /etc/wireguard/benchpress.conf, thensudo wg-quick up benchpressiOS WireGuard app, scan the QR code Android WireGuard app, scan the QR code -
Turn the tunnel on, then press Check again in the banner.
The chip in the page header turns green and reads
VPN connectedonce the
server has heard from the device.
Read the device list
Each registered machine is one row.
Screenshot placeholder — docs/images/user/vpn-devices/04-device-list.png — The Devices page with one machine registered, at 1280 by 800 pixels. The row reads Sam — MacBook Pro, Laptop, registered 28 Aug, IP 172.27.0.20, Transfer 0 B down and 0 B up, and a gray Pending badge. Config, QR and an overflow button sit under the badge. The banner above still reads, This device is not on the VPN, with the line, 1 machine registered, none with a recent handshake. Turn the tunnel on in your WireGuard client, then check again.
| Column | Value in the frame | Meaning |
|---|---|---|
| Name and type | Sam — MacBook Pro, Laptop |
what you typed when you registered |
| Registered | 28 Aug |
when the peer was created |
| IP | 172.27.0.20 |
the fixed tunnel address for this machine |
| Transfer | 0 B ↓ / 0 B ↑ |
bytes the server has counted for this peer |
| Status | Pending |
see the status table below |
Config reopens the config text with a download button. QR reopens the
scannable code. The overflow button holds Remove.
Run the connection test
Press Run connection test when a site will not open. The test checks only
what is yours, so a non-admin gets a real answer.
Screenshot placeholder — docs/images/user/vpn-devices/05-connection-test.png — The Devices page after running the connection test, at 1280 by 800 pixels. The device row now carries a yellow Stale badge. Under the Run connection test button a bold line reads, First failing check: Peer enabled on the server. Four rows follow: WireGuard server Active, Device registered Active, Peer enabled on the server Error with the hint that Sam — MacBook Pro has stopped talking to the server and to turn its tunnel on again, and Recent handshake Error with the hint that the server has never heard from Sam — MacBook Pro.
The four checks run in order, and the card names the first one that failed.
| Check | Passes when |
|---|---|
| WireGuard server | the server this tunnel terminates on is up |
| Device registered | this account has at least one device |
| Peer enabled on the server | the device's peer status is Active |
| Recent handshake | the last handshake is inside the 5-minute window |
The test never raises an error. A failure is a row with a hint.
Remove a device
Open the overflow button on the row and choose Remove.
Screenshot placeholder — docs/images/user/vpn-devices/06-remove-confirm.png — A confirmation dialog over the Devices page at 1280 by 800 pixels, headed Remove this device? The body reads, Sam — MacBook Pro loses VPN access immediately and its tunnel IP goes back to the pool. Registering it again issues a new config. A single black Confirm button spans the foot of the dialog.
Removing is immediate and the address returns to the pool. Registering the
same machine again issues a new key and, usually, a different IP.
Verify
- The header chip reads
VPN connected. - The device row reads
Activeand the transfer counters climb. - A bench's private URL opens in a browser.
ping <the bench WireGuard IP>answers.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
Status stays Pending |
The config was never imported, or the tunnel is off | Import the .conf and turn the tunnel on |
Status turned Stale |
No handshake for over 5 minutes | Turn the tunnel on again. WireGuard rekeys about every two minutes |
Status reads Disabled |
An administrator disabled the peer | Ask an admin to re-enable it |
Status reads Revoked |
The peer was revoked | Register the machine again for a fresh config |
| Two machines drop each other | One config is being used on both | Register each machine separately |
| Add device is refused | The account is at the device cap of 5 | Remove a machine you no longer use |
The connection test says No device to test |
Nothing is registered on this account | Register this machine |
| The tunnel is up and a site still 404s | The bench is stopped, not unreachable | Start the bench |
Reference
Device status
| Status | Meaning |
|---|---|
Pending |
Registered, never connected |
Active |
Handshake inside the last 5 minutes |
Stale |
Registered and connected once, silent since |
Disabled |
Switched off on the server by an administrator |
Revoked |
Withdrawn. The config no longer works |
Active is decided by one rule, used by the header chip, the row badge and
the connection test alike: the last handshake is no older than
VPN Settings.status_poll_interval_min, which is 5 minutes on this server.
Limits and defaults
| Setting | Where | Value here |
|---|---|---|
| Devices per account | Credit Settings.max_devices |
5 |
| Handshake window | VPN Settings.status_poll_interval_min |
5 minutes |
| Device types | fixed in the app | Mobile, Laptop, Desktop, Tablet, Server, IoT, Embedded |
One device per machine
A WireGuard peer is a single identity. Two machines running the same config
disconnect each other, because the server routes the address to whichever
handshook last. Register every machine separately.
What a device is underneath
Each device is a VPN Peer record owned by your user. The vpn_management
app owns the WireGuard server, the address pool and the keys. The Devices page
is a view over the peers you own, and it authorizes by owner rather than by
VPN role, so a BenchPress User can manage their own machines.
Only the lab network routes through the tunnel
The config routes the lab network and nothing else. Your normal traffic does
not go through BenchPress while the tunnel is on.
Related
- Connect over SSH and the VPN — the addresses this tunnel makes reachable.
- Use code-server — the browser IDE, which needs no tunnel.
- Troubleshooting — symptoms across the whole app.