Skip to content

WireGuard

WireGuard is the tunnel between the VPS and the home LAN. Its job today is narrow and important: it carries the Minecraft game traffic. Human remote access has moved to Tailscale — do not build new access paths on this tunnel.

Topology

The VPS is the hub. Interface wg0 on the VPS is 10.10.0.1/24, listening on UDP 51820 (allowed through UFW).

Peer Tunnel IP Identity Purpose
(hub) 10.10.0.1 VPS Hub; NPM forwards Minecraft UDP down the tunnel
mc 10.10.0.2 Minecraft VM (guest minecraft, VMID 103 on Proxmox) Receives the game traffic
io 10.10.0.3 Unknown to these docs Unknown to these docs

ASK ELLIOTT: what is the io peer?

The io peer (10.10.0.3, public key on the VPS since 2025-08-21) exists in the hub config, but nothing in the estate survey identifies which device it is or whether it is still in use. Ask Elliott, then either document it here or remove the peer from the hub config. An unused peer with a valid key is standing remote access — it should not stay undocumented.

What flows through it

Minecraft Bedrock players connect to the VPS's public IP on UDP 19132/19134/19136. NPM does a stream passthrough and forwards each port over the tunnel to the Minecraft VM at 10.10.0.2. That is the entire production role of WireGuard today.

player ──UDP 19132/19134/19136──▶ VPS (NPM passthrough)
                                    │
                                    ▼  wg0 tunnel (UDP 51820)
                              10.10.0.2  Minecraft VM (103)

What it no longer does

  • Backups: the VPS backup leg was fully retired 2026-08-11 — no rsync rides this tunnel anymore.
  • Remote admin: Tailscale (with the ops subnet router) is the supported way for humans to reach the LAN. WireGuard peers should not be added for personal devices.

Where the config lives

Thing Location Notes
Hub (server) config /etc/wireguard/ on the VPS Root-only; contains the hub private key — never copy it into docs
Client public keys /home/elliott/mc_public.key, /home/elliott/io_public.key on the VPS Public halves only
Client (peer) configs On each peer (e.g. the Minecraft VM) Each peer holds its own private key

This page is written from the outside

It documents what is visible without root on the VPS: the wg0 address, the UFW port, and the two client public-key files in ~elliott. The authoritative peer list is /etc/wireguard/ (root). Next time you are on the VPS with sudo, run sudo wg show and reconcile this table — especially endpoints, allowed-IPs, and last-handshake times.

Health checks

Read-only, from the VPS:

ip -br addr show wg0          # interface up, 10.10.0.1/24
sudo wg show                  # peers, last handshake, transfer counters

Quick functional test: join one of the Minecraft servers from outside the LAN — if the world loads, the tunnel is passing traffic. See the Minecraft runbook for server-side checks, and topology for where this tunnel sits in the wider network.