Architecture Overview¶
Tunnel Whisperer creates resilient, application-layer bridges for specific ports across separated private networks. It encapsulates traffic in standard HTTPS to traverse strict firewalls, NAT, and DPI-controlled environments.
The system has three roles: a relay operator (admin) owns a publicly reachable relay VM, servers behind private networks join it via an enrollment handshake, and clients behind other private networks connect through it. The relay is multi-tenant — several independent servers can share one relay, each isolated behind its own path, CA, and loopback port. All connectivity is egress-only from servers and clients.
graph LR
subgraph Server Network
S[Server - tw server start]
end
subgraph Public Cloud
R[Relay VM]
C_[Caddy :443 mTLS gate]
X["Xray (per-tenant VLESS inbounds<br/>on 127.0.0.1)"]
end
subgraph Client Network
CL[Client - tw client connect]
end
S -- "mTLS :443 (VLESS+XHTTP, /tw/<id>)" --> C_
CL -- "mTLS :443 (VLESS+XHTTP, /tw/<id>)" --> C_
C_ -- "per-tenant handle /tw/<id>" --> X
X -- "freedom outbound (loopback only)" --> R Documentation Sections¶
| Section | Description |
|---|---|
| System Context | Goals, quality attributes, system scope, and protocol breakdown |
| Solution Strategy | Challenge-to-solution mapping with technology choices |
| Building Blocks | Component overview, project structure, and module responsibilities |
| Runtime Views | Sequence diagrams for provisioning, connection, and reconnection flows |
| Deployment | Configuration, file layout, Terraform templates, and build targets |
| Cross-cutting Concerns | Reconnection, security, config change detection, dashboard architecture |
Template
This documentation follows the arc42 architecture documentation template.