Devices
Install the client, handle platform differences, approve and manage devices, and use the wwnet command line.
Device status
The device list is under Configuration → Devices.
| Column | Meaning |
|---|---|
| Device | Hostname and the alias, if set |
| Online | Current online state |
| Approval | Pending / Approved / Blocked |
| Virtual address | Overlay IP in the current network |
| Public address | Public egress address the device is currently using |
More settings at the end of a row opens the device details, which show static inventory: operating system, kernel, architecture, CPU model, memory and swap capacity, interfaces, and disk capacity. It does not show live CPU, memory, disk, or network utilization. These fields remain empty until the first report.
Installing the client
Desktop and server platforms
| System | Architectures | Service manager | Install location |
|---|---|---|---|
| Linux | x86-64, ARM64 | systemd; procd on OpenWrt | /usr/local/bin; /usr/bin on OpenWrt |
| Windows | x86-64, ARM64 | Windows service | %ProgramFiles%\WideWired |
Prerequisites
- Administrator rights:
sudoon Linux or an elevated PowerShell on Windows. curlon Linux.- Outbound access to the release origin and WideWired services.
- Operating-system support for a TUN/virtual network interface.
No public IP or inbound port is required.
Getting the install command
Open Configuration → Devices in the console and select an installation platform under How it works. The generated command already contains the site domain and current network ID. The iPhone and macOS entries open the App Store, and Android opens Google Play. They offer app links and QR codes instead of commands.
Linux:
curl -fsSL https://<your site's API domain>/wwnet/install/join/<network-id>.sh | sudo sh
Windows (Administrator PowerShell):
# Run in PowerShell as Administrator
iex (irm "https://<your site's API domain>/wwnet/install/join/<network-id>.ps1")
The angle brackets illustrate the format. Copy the complete generated command and do not substitute values manually.
The installer selects the version for the current platform, verifies the download, installs the background service and registers the device with the network ID. The device then enters Pending.
Linux
Linux supports x86-64 (x86_64 / amd64) and ARM64 (aarch64 / arm64). OpenWrt requires the procd service manager; other Linux distributions require systemd.
Before installation, confirm that /dev/net/tun is available. On OpenWrt, also confirm that the partition containing /usr has enough installation space.
Inspect systemd and its logs:
systemctl status wwnet
journalctl -u wwnet -n 100 --no-pager
OpenWrt:
/etc/init.d/wwnet status
logread | grep wwnet
iPhone and Android
Open Configuration → Devices, select iPhone or Android under How it works. Install from the App Store or Google Play using the provided link or QR code. After installation:
- Enter the current network's 12-character ID from the console.
- Connect and approve the operating system's VPN permission when requested.
- Approve the new device under Configuration → Devices after checking its identity.
- Confirm that the app reports a connection, then test access to a peer's network address.
Mobile devices do not act as forwarding exits or site-route devices, and do not run automation scripts. In-Network Device Forwarding is off by default on mobile devices and can be turned on in device details.
macOS
macOS uses the WideWired app from the App Store, the same app page as iOS. It requires macOS 12 or later; both Apple Silicon and Intel Macs are supported. After installing the app:
- Enter the 12-character network ID shown in the console.
- Select Connect and allow macOS to add the VPN configuration the first time.
- Return to Configuration → Devices and approve the new device.
The App Store delivers updates; the wwnet command line is not available on macOS. A Mac applies the forwarding rules that list it, and In-Network Device Forwarding is on by default and can be turned off in device details. Like mobile devices, a Mac does not act as a site-route device or forwarding exit, or run device automation scripts.
Windows
A regular PowerShell triggers Windows elevation and continues as Administrator after confirmation; an already elevated PowerShell can run the command directly.
Windows or corporate endpoint protection may require approval on first download or execution. The installer verifies the release-manifest signature and binary SHA-256. Do not bypass a verification failure or use a program from another source.
Inspect the Windows service:
Get-Service wwnet
The client creates a wintun adapter visible under Network Connections. It requires no manual configuration and must remain enabled. Uninstall removes it automatically.
Managing devices
Approving a device
A newly registered device is Pending and cannot communicate. Under Configuration → Devices, verify the hostname and platform, then approve it. Once Approved, the system creates links to the other devices.
The network ID is not an authentication credential, so approval is required before a device receives network access.
Editing a device
Edit these fields in place under More settings at the end of the device's row:
- Alias: display only.
- Virtual address: must be inside the network CIDR and unique; applies at the next configuration sync.
- Transport protocol: controls the transport used by direct connections.
After changing an overlay IP, update scripts, firewall rules and monitoring configuration that reference the old address.
Forwarding settings
Device details do not offer forwarding settings. Excluded ranges saved for a device earlier remain in effect; destinations in them always use the local system route.
Forwarding rules are maintained together under Configuration → Forwarding, and each rule selects the devices it applies to. To keep some destinations off the exit, choose Exclude only these networks for the rule's destination networks. See Forwarding.
Blocking and unblocking
Blocking retains the device record and configuration. Existing connections may take a short time to stop. Unblocking returns the device to Approved. Blocking does not uninstall the client or mobile app.
In-Network Device Forwarding
When In-Network Device Forwarding is enabled, the device can forward traffic for two other devices that cannot connect directly. It uses the device and its bandwidth and does not incur Global Dedicated Transmission charges.
Every platform has the option: it is on by default on Linux, Windows and macOS, and off by default on iPhone and Android. Selection still depends on reachability. Disable the option on bandwidth-constrained or metered devices.
Offline alerts
Offline alerts are off by default. Enable them below In-Network Device Forwarding in device details to receive offline alerts. Turning them off ends current offline alerts immediately; device online status still reflects actual connectivity.
Deleting a device
Deleting a device removes it from the network. Once notified, Linux and Windows clients restore network settings and uninstall; macOS and mobile apps leave the network but remain installed. An offline device must reconnect to receive the notification. If cleanup cannot complete on Linux or Windows, run:
wwnet uninstall
Command-line reference
Network and policy configuration lives in the console. On Linux and Windows, wwnet handles registration, status, updates, leaving a network and uninstalling; macOS and mobile devices do this in the app.
| Command | Purpose |
|---|---|
wwnet |
Shows the status table: network, network address and one row per peer |
wwnet join <network-id> |
Joins with the 12-character ID from the console |
wwnet leave |
Leaves the network, restores network configuration and removes the service |
wwnet uninstall |
Fully cleans the local installation without requiring the service |
wwnet update |
Requests an update check |
wwnet version |
Shows the current version |
wwnet help |
Shows command usage |
join, leave, update and uninstall require Administrator rights. leave takes no network ID because one installation belongs to only one network at a time.
Status and paths
Run wwnet to inspect the device and its peers. Command-line output is in English.
| Field | Meaning |
|---|---|
console |
The console this device reports to; open it in a browser |
version |
Installed client version |
status |
Connection state; see the table below |
device name |
Local hostname |
device id |
Device ID, as shown in the console |
network name |
Network name, as shown in the console |
network id |
12-character network ID |
network address |
This device's address inside the network |
peers |
One row per peer: <name> (<network address>) - <path type>, <state> |
A value the device cannot determine is printed as unknown. Path types are
direct, peer relay and cloud relay; states are healthy, needs attention
and checking.
status |
Meaning |
|---|---|
connected |
Connected and able to communicate with peers |
awaiting approval |
Registered and waiting for console approval |
connecting |
Fetching or applying configuration |
disconnecting |
Leaving and restoring local configuration |
uninstalling |
Uninstalling; run wwnet uninstall with administrator rights to finish cleanup |
paused by an administrator |
An administrator paused this device in the console |
needs attention |
Connectivity stopped, or the previous leave/uninstall did not finish; a reason row gives the detail |
not joined to a network |
Installed but not joined |
background service not running |
Background service is not running |
Statuses that need you to act carry their next step in the table: approve at
for a device awaiting approval, and what to do for a paused device or one that
needs attention. When something needs attention the table adds rows in place:
reason when the connection has stopped, and stage / code / reason / what to do when cleanup is incomplete.
Updating
Automatic update checks follow the client update policy and maintenance window under Management → Properties. Off disables routine policy-based checks.
If a Linux or Windows device receives a platform minimum-version requirement above its installed version, it attempts an immediate automatic upgrade even when updates are Off or outside the maintenance window. The service may briefly restart.
To request a check now regardless of that policy or window, run with administrator rights:
wwnet update
Update check requested. confirms that the request was accepted; it does not mean installation has finished. An eligible new version downloads and installs in the background, and the service may briefly restart. Updates verify their source, signature and integrity. If a new version fails its health checks, it rolls back automatically.
Wait for the update, then run wwnet version to check the installed version and wwnet to confirm the connection has recovered.
Leaving a network
wwnet leave
The command disconnects the network, restores routes, DNS, firewall rules and the virtual adapter, deletes the local device identity and removes the service. To move to another network, complete leave before running the new network's install command; a direct second join returns E1042.
Uninstalling
wwnet uninstall
uninstall stops the service, restores network configuration and then removes the program and local data. It does not depend on the service, so it also handles a service that cannot start or an incomplete previous cleanup.
If restoration is incomplete, the client returns E1060 and reports needs attention. Repeat wwnet uninstall; do not remove program or recovery data before success.
Diagnostics
Crash reports and error logs are not uploaded automatically. For assistance, provide the wwnet output, error code and occurrence time; see Getting support.
Exit codes
| Exit code | Meaning |
|---|---|
0 |
Success |
1 |
Operation failed; read the error message |
2 |
Invalid command or argument |
4 |
Administrator rights required |
Quick troubleshooting
| Symptom | Check and action |
|---|---|
| The install command fails immediately | Check Administrator rights, architecture, curl and outbound access, then copy the complete command again from Configuration → Devices |
| Signature or SHA-256 verification fails | Do not bypass verification; retry on another network and contact support if persistent |
Linux has no /dev/net/tun |
Load TUN support or use a kernel/host environment that provides it |
| The App Store reports the Mac is incompatible | The macOS app requires macOS 12 or later; both Apple Silicon and Intel Macs are supported |
| Windows endpoint protection blocks the program | Have an administrator allow it under organizational policy; do not use an unverified substitute |
status is awaiting approval |
Approve the device in the console; this is the normal post-registration state |
| An approved device remains offline | Inspect the peers rows in wwnet, the service and Last communication |
| Access fails after changing the virtual address | Wait for configuration sync, check uniqueness and update every caller |
status is background service not running |
Inspect the platform service and logs; the corresponding code is E1002 |
status is connecting |
Wait for configuration sync; for E1003, do not repeatedly restart the service |
needs attention |
Follow the reason and error code; repeat wwnet uninstall only for an incomplete leave or uninstall (E1060) |
See Troubleshooting for every error code.