DocumentationDevices
Docs/Devices

Devices

A device is a user-owned network principal. It has a protocol, tunnel mode, address, lifecycle state, and—when supported—posture facts.

Device inventory showing modes and lifecycle states

Synthetic dev inventory. Addresses and demo.tunnex.local identities are fixtures; stale states are intentional.

  1. Open Devices.
  2. Select Add device.
  3. Enter Device name. Use a name the owner will recognize in a revocation decision, such as rajan-macbook rather than laptop.
  4. Under Protocol, choose WireGuard.
  5. Check Route all traffic through Tunnex only when you intend full tunnel.
  6. Choose Gateway when more than one eligible gateway exists.
  7. Select Create device.

WireGuard device creation form

The result is headed Your configuration — shown once. Download the .conf file or scan its QR code directly into the intended client. Do not capture that screen: the file and QR contain the device private key.

When Settings → Features → OpenVPN is enabled:

  1. Open the same Add device form.
  2. Choose OpenVPN.
  3. Choose tunnel mode and gateway.
  4. Select Export OpenVPN profile.

OpenVPN device export form

Download the one-time .ovpn profile and import it into an official compatible client. Turning the OpenVPN feature off later does not revoke already issued profiles; revoke the device explicitly.

The generated configuration is a one-time secret. Save/import it during the creation ceremony. Tunnex does not provide a later “show private key” action.

If writing or downloading fails after the server created the device, revoke that row and start again. Never reuse a partial or uncertain configuration.

When organization approval is enabled, a newly created device remains pending and is excluded from active gateway peers. An owner or administrator must review it in Devices → Approvals.

The Linux CLI currently does not call out this pending state after creation. If its configuration never handshakes, check the approval queue before debugging the network.

Pending device approval queue

To use approval mode:

  1. Open Settings → Access & security.
  2. Turn on Require device approval.
  3. Enroll the device.
  4. Open Devices → Approvals.
  5. Verify requester, device, protocol, and time.
  6. Select Approve or Reject.

Turning approval on affects future enrollments; existing active devices are grandfathered.

ModeRoutesDNSRequirement
Split tunnelApproved private rangesKeeps local DNS unless private DNS is configuredNormal gateway
Full tunnelIPv4 default and, when configured, IPv6 defaultUses tunnel DNSGateway must report egress NAT

Full tunnel is refused when no egress-capable gateway is available. It is safer to refuse creation than to issue a profile that captures the default route and drops internet traffic.

  • Desktop client — browser auth, helper-managed routes, kill switch, posture, and managed lifecycle on macOS/Windows.
  • Linux CLI — browser/device-code auth and a static wg-quick configuration.
  • Official WireGuard client — imports the one-time configuration but does not add Tunnex desktop lifecycle or posture features.

On a WireGuard client:

Terminal window
sudo wg show
ip route

Check for a recent handshake, increasing transfer counters, and the expected private route. Then open Devices and confirm the row is active rather than pending, suspended, or revoked. A green row without an application test is not enough; connect to a representative private destination and verify the intended port.

StateMeaning
PendingWaiting for administrator approval
Never connectedIssued but no handshake has been observed
Last seen …Latest reported handshake/liveness time
Posture warningA warn-mode check failed; traffic remains allowed
Posture blockedA require-mode check failed; gateway access is removed
RevokedDevice is excluded from newly compiled gateway state
Re-export neededStatic material is stale after a change that cannot be repaired in place

“Unknown” posture means absent or stale reporting. It is not proof of compliance, and it is not automatically blocked by the current posture model.

Device posture controls for disk encryption and minimum OS

Managed macOS and Windows clients report these facts. Linux/CLI, iOS, Android, and imported static profiles show posture as not applicable or unknown. Warn records the issue without removing access; Require removes access when a noncompliant managed report is applied. Posture is client-reported, not hardware attestation.

  1. Disconnect the client when possible.
  2. Revoke the device in the console.
  3. Confirm the affected gateways have reconciled the new policy revision.
  4. Remove the local profile/application state.

If a gateway is offline during revocation, it cannot receive the new state. Isolate that gateway or wait for confirmed reconciliation before treating the revocation as complete.

WireGuard peer removal is immediate once applied. OpenVPN revocation is bounded by its renegotiation timing rather than instantaneous peer removal.

Pending devices count toward per-user limits. Creation can be refused for:

  • device or agent quota;
  • exhausted address pools;
  • no active gateway;
  • a gateway that is not ready; or
  • missing full-tunnel egress.

Do not delete unrelated devices merely to make an unexplained error disappear; read the returned error code and use Troubleshooting.

Documentation

Search Tunnex docs