Engineer at a workstation in a technical room

Service access · grew from NetBird

Access to the property for your team.

Service access to property systems, with clear boundaries for the team.

  • No VPN or inbound ports
  • Only an allowed host:port
  • P2P with relay fallback
  • Terminal, SFTP, and audit
3connection scenarios
2connection paths
24/7service access control

What the agent solves

Access a service, not the whole network

The agent stays on an always-on site machine and keeps an outbound connection. The LAN is never exposed.

Access boundary

Only the saved host:port.

The user gets no subnet route and cannot replace the target.

Deny by default

After registration, the LAN is closed. Port policy, ACL, and role come first.

01

Controllers and agents

Status, heartbeat, version, and actions stay inside the project.

02

Services and devices

Working list of allowed IP:port targets. No ACL bypass.

03

Tunnels and public endpoints

Stable name.access.xyz.su survives external IP changes.

04

Rules, map, and log

Who connected, what is open, and why access was denied.

Three roles, one runtime

Choose the agent by where it works

One shd-agent binary. The mode depends on where it runs.

01

Controller-agent

On-site. Outbound TLS, heartbeat, saved TCP targets only.

02

User-agent

On the engineer's computer. One QUIC session, parallel HTTP, SSH, and TCP.

03

Server-agent

On a server. Gateway, Exit-node, and speed test by route policy.

Request path

From authorization to the first byte

The server authorizes. Data uses P2P; if the direct path is unavailable, relay takes over.

01

User or application

Overlay, public endpoint, or tunnel.

02

SHD checks access

User, project, service, role, and agent revision.

03

P2P or relay

Direct QUIC first. If unavailable, binary relay.

04

Controller-agent

Local TCP only to the exact host:port.

05

Exact service

HTTP, SSH, and Loxone keep their normal authentication.

DIRECT PATH

P2P QUIC

Traffic moves directly between agents. Relay cannot see the data.

FALLBACK PATH

Relay fallback

If NAT or a firewall blocks P2P, frames go through relay.

One QUIC session per agent · one stream per TCP connection.

Security

Not a VPN and not an open LAN

Project access does not open the network. You need a role, port, and ACL.

Access model

Four boundaries for every request

The project sets context, policy defines the service, ACL selects who passes. Revocation closes the path immediately.

01

Module role

Reading agents does not grant permission to change settings.

02

Access-port policy

192.168.1.3:443 does not open :80 or neighboring devices.

03

ACL rule

User or group, exact service, allow/deny.

04

Revocation and audit

Sessions close immediately. Everything is logged.

Operating boundary

Tools for connection and operations

From agent installation to terminal, routes, and incident analysis.

01

HTTP, HTTPS, and WebSocket

Web UIs and APIs of saved services.

02

Terminal and SFTP

Browser SSH needs no local agent. SFTP is a separate role.

03

Public endpoints

name.access.xyz.su. Application login and ACL still apply.

04

Overlay and routes

Native L3 100.126.0.0/16. Ordinary internet routing stays intact.

05

Exit Network

Release traffic from the server-agent IP by route policy.

06

Heartbeat and jobs

Push-first: sync, update, reboot. HTTP is the fallback.

Putting into operation

From installation to a live connection

Runtime first, then the exact service, access, and transport check.

  1. 01

    Install and enroll

    Always-on machine, shd-agent, enrollment token.

  2. 02

    Wait for online state

    Outbound TLS, heartbeat, service list.

  3. 03

    Save the required ports

    Required targets only: 443, 875, 8123, 22.

  4. 04

    Assign roles and rules

    Roles and ACL. LAN is closed by default.

  5. 05

    Open and observe

    Overlay or endpoint, first response, audit log.

Before connection

Questions that matter on site

Short answers about runtime roles, data paths, access boundaries, terminal, and diagnostics.

It is one Go runtime with several roles. Controller-agent runs in the property network, user-agent on the engineer workstation, and server-agent on a server with dedicated modules.

No. Controller-agent creates an outbound secure connection. Users reach only saved services, not the entire local network.

After the direct QUIC attempt fails, user-agent activates relay fallback. The first request is preserved and data moves in binary frames through relay and controller-agent.

No, that is not the module model. Access is an exact service/host/port; broadcast, multicast, metadata, backend, and relay addresses are blocked, and hostnames are checked against every resolved IP.

Any explicitly saved TCP service the agent can reach locally: HTTP/HTTPS, WebSocket, SSH, Loxone, Home Assistant, and other exact ports.

Yes. Browser SSH terminal needs no local user-agent on a phone or computer. It requires terminal role, saved SSH username and credential; SFTP additionally requires sftp role.

It is a server-agent path: Routing gateway accepts a route group, relay connects it to an Exit-node, and the Exit-node releases allowed traffic to the destination from its own IP.

Remove or change the rule, port, endpoint, or role. Backend closes active sessions, updates the agent allowlist, and records the action; there is no old session to wait out.

Check controller-agent online, user-agent, route policy, target reachability from the agent, shd99, and 100.126.0.0/16. For transport inspect p2p_first_byte, last_path, p2p_sent, and relay_sent.

Yes. Review the network, controllers, target ports, service method, and required roles first. Then add the smallest service set without automatic access to the remaining LAN.

Connect the property

Design the access boundary

Tell us which controllers, devices, and operations need remote service. We will map the property network, runtime roles, exact ports, transport choice, and launch plan.

Before the first call, prepare a network sketch, controller list, service host:ports, terminal/SFTP requirements, and the organization access model.

Code from the image
Code from the image