Skip to content

Client Configuration

FlagDefaultDescription
-serverwoho.frp.cesbo.com:9000Server address in host:port format
-nameSystem hostnameDisplay name shown in the admin panel
-keySaved key, if presentPre-shared authentication key (XXXX-XXXX-XXXX format). Saved locally after first use

By default, the client uses TLS 1.3 and verifies the server certificate with the operating system trust store.

FlagDefaultDescription
-pinSaved pin, if presentServer certificate SPKI pin. Use it for self-signed or private certificates
-insecurefalseConnect without TLS. The server must be started with -tunnel-insecure
FlagDescription
-vEnable verbose logging
-versionPrint version information and exit
-helpPrint help message and exit
Terminal window
# Basic connection with a publicly trusted server certificate
woho-client -server your-server.com:9000 -key ABCD-EFGH-JKMN
# Custom display name
woho-client -server your-server.com:9000 -name "Production-Web-01" -key ABCD-EFGH-JKMN
# Self-signed or private certificate
woho-client -server 10.0.0.5:9000 -key ABCD-EFGH-JKMN -pin sha256//K7yc5T2s0e1kQm0oXQ0Qb1n0v0k4vT9nQ2y8m1s6Xn0=
# Without TLS; server must use -tunnel-insecure
woho-client -server your-server.com:9000 -key ABCD-EFGH-JKMN -insecure
# With verbose logging (for troubleshooting)
woho-client -server your-server.com:9000 -name "Debug-Client" -key ABCD-EFGH-JKMN -v

Built-in service management for Linux (systemd) and Windows (SCM).

CommandDescription
installCopy binary and register as a system service
uninstallStop and remove the system service
startStart the installed service
stopStop the installed service
statusShow current service status
Terminal window
# Linux (requires root)
sudo woho-client install -server your-server.com:9000 -name "Client-01" -key ABCD-EFGH-JKMN
# Linux with a pinned certificate
sudo woho-client install -server 10.0.0.5:9000 -name "Client-01" -key ABCD-EFGH-JKMN -pin sha256//K7yc5T2s0e1kQm0oXQ0Qb1n0v0k4vT9nQ2y8m1s6Xn0=
# Linux without TLS; server must use -tunnel-insecure
sudo woho-client install -server your-server.com:9000 -name "Client-01" -key ABCD-EFGH-JKMN -insecure
Terminal window
# Windows (Administrator PowerShell)
.\woho-client.exe install -server your-server.com:9000 -name "Client-01" -key ABCD-EFGH-JKMN

What install does:

PlatformActions
LinuxCopies binary to /usr/local/bin/woho-client, creates systemd unit, creates /var/lib/woho/
WindowsCopies binary to C:\Program Files\woho\, creates Windows service with auto-recovery
Terminal window
sudo woho-client uninstall # Linux
.\woho-client.exe uninstall # Windows (Admin PowerShell)

Stops the service and removes the service configuration. Data files (including the UUID) are not deleted — the same UUID is reused on reinstall.

Terminal window
# Linux
woho-client start
woho-client stop
woho-client status
# Or directly via systemctl
systemctl start woho-client
systemctl stop woho-client
systemctl status woho-client
Terminal window
# Windows
.\woho-client.exe start
.\woho-client.exe stop
.\woho-client.exe status
# Or via sc.exe
sc.exe start woho-client
sc.exe stop woho-client
sc.exe query woho-client

Use the same transport on both sides:

Server modeClient option
-tls-cert + -tls-key with a public certificateNo extra option
-tls-cert + -tls-key with a self-signed/private certificate-pin sha256//...
-tunnel-insecure-insecure

There is no automatic fallback from TLS to plaintext. If certificate verification fails, the client refuses to connect and keeps retrying with the same configuration.

The install command saves -pin to spki_pin next to auth_key, so you only need to pass it during install or rotation.


The client uses exponential backoff when reconnecting after a lost connection:

AttemptDelay
11 s
22 s
35 s
410 s
530 s
6+60 s (max)

The backoff resets to 1 s after a successful connection.

ParameterValue
Heartbeat interval30 s
Server idle timeout120 s

If the server receives no data from a client for 120 seconds it treats the connection as stale.

Reported every 5 seconds:

  • CPU usage (%)
  • Memory usage and total
  • Disk usage and total
  • Network bytes in/out

Each client generates a UUID on first run, persisted to disk and reused across restarts.

PlatformConfig directory
Linux / macOS (root)/etc/woho/
Linux / macOS (user)~/.woho/
Windows%APPDATA%\woho\

File name: client_id

When a client connects with -key, the key is saved to the config directory as auth_key. On subsequent starts the client reads this file automatically.

PlatformFile location
Linux / macOS (root)/etc/woho/auth_key
Linux / macOS (user)~/.woho/auth_key
Windows%APPDATA%\woho\auth_key