System Overview
High-level architecture of the Exposr tunneling system.
Components
Exposr consists of three main components:
- Client (Agent) — Runs on the user's machine. Manages the control connection, creates data tunnels, and forwards traffic to local services.
- Server (Relay) — Runs on a public server. Accepts agent connections, manages public ports, and bridges public connections to agent data tunnels.
- Common — Shared utilities for logging and protocol message parsing.
Architecture diagram
Internet User
▼
SERVER_IP:PUBLIC_PORT
▼
Exposr Server
Control Port: 9000
Data Port: 9001
Public Ports: 25565, 20000–30000
Persistent outbound connection
▼
Exposr Client
▼
127.0.0.1:LOCAL_PORT
▼
Local Service
Communication
The agent initiates all control and data connections outbound, meaning it works behind NAT and firewalls without requiring inbound ports on the client machine. Public TCP and UDP listeners run on the relay server.
The system uses a text-based protocol over the control channel. TCP tunnels forward stream data directly, while UDP datagrams travel through the TCP data channel as length-prefixed frames.