Exposr

Expose local services to the internet through a secure reverse tunnel.

Experimental
Exposr v0.4 is currently an experimental proof of concept. The core tunneling functionality works, but some features like TLS encryption and per-connection authentication are not yet implemented.

Exposr is a reverse tunneling tool that allows developers to expose services running on their local machine through a publicly accessible relay server. It uses a persistent control connection and creates dedicated data tunnels for each incoming public connection.

What is Exposr?

Exposr is a lightweight reverse TCP tunnel built with Python and asyncio. It lets you take a service running on 127.0.0.1 and make it accessible from the public internet through a relay server.

With a single command, your local web server, API, game server, or any TCP service becomes reachable at a public IP address and port.

bash
exposr expose 3000

How it works

  1. Your application runs locally (e.g., 127.0.0.1:3000)
  2. The Exposr client creates an outbound connection to the relay server
  3. The client authenticates with an agent token and registers a public port
  4. When someone connects to the public port, the server notifies the client
  5. A dedicated data connection is created for each public connection
  6. Traffic flows bidirectionally between the public user and your local service

Architecture

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

Use cases

  • Share a local development server with teammates or clients
  • Test webhooks from external services against a local server
  • Expose a local game server (e.g., Minecraft on port 25565)
  • Demo a local application without deploying
  • Access a service behind NAT or a firewall

Current status

Exposr v0.4 supports:

  • Reverse TCP tunneling
  • Dynamic public port registration with automatic fallback
  • Agent token authentication on the control channel
  • Multiple simultaneous public connections
  • Dedicated data tunnel per connection
  • Automatic agent reconnection
  • Command-line interface
Note
Features like TLS encryption, UDP support, domain routing, and per-data-connection authentication are planned but not yet implemented. See the Security section for details.