Skip to content
Private network Connect your servers over an encrypted WireGuard mesh, with per-peer keys generated on your own device.

Private network

A private network turns your scattered VPS fleet — different providers, different public IPs — into one flat, encrypted internal network (mesh IPs like 10.66.0.x). Use it for database replication, internal APIs, monitoring, and cross-server backups without exposing a single port to the Internet. Laptops, phones, and CI runners can VPN in to reach the same internal services.

The private network lives at app.mzpanel.com/network and is gated to Pro+.

MZPanel builds a hubless full-mesh: every peer opens a tunnel directly to every other peer. Data travels straight A↔B — the control plane coordinates config but never sits on the data path, so MZPanel cannot see or relay your traffic.

  • Server ↔ server connects directly. Each VPS has a static public IP and the agent opens UDP 51820 inbound for you (it already manages the firewall) — no hub, no NAT punching.
  • Devices dial out to a server’s public endpoint; WireGuard learns the endpoint from the first handshake and PersistentKeepalive holds the path open through NAT.

Each account gets a /24 subnet (10.66.0.0/24, ~253 peers) — far more than any tier’s VPS quota needs.

From the Network page, add a server (pick one of your connected VPS) or a device (laptop, phone, CI). MZPanel assigns the next free mesh IP and pushes the updated peer set to every online server in the mesh.

Changes apply without dropping live tunnels: the agent rewrites the WireGuard config and runs wg syncconf on the running interface, so existing connections keep their handshakes and only the added or removed peers change. A new peer shows as handshake pending, then flips to online once the real handshake lands.

Removing a peer pushes the revocation to every remaining peer immediately, so a removed box loses access the moment any peer drops its public key.

You never see or handle a WireGuard key. The UI shows only the peer name and mesh IP — keys are generated automatically at the edge and stay there.

Peer typeWhere the private key is generatedWhat the control plane stores
ServerThe agent runs wg genkey on the box; the private key stays in wg0.confThe public key only
DeviceYour browser generates the keypair locally; the config + QR render client-side, shown onceThe public key only

The control plane database holds no mesh secret of any kind — only public keys (~32 bytes each) and metadata. Even a full database compromise can’t decrypt your traffic or impersonate a peer, because every private key was generated at the edge and never left it.