funnel

introduction

expose local services to the internet through websocket connections

🕳️ funnel

a tunneling solution built with go

expose local services to the internet through websocket connections

⚠️ disclaimer

this tunneling solution is intended for development and testing purposes. while functional, it may not include all security features required for production environments.

funnel is a lightweight tunneling solution that allows you to expose your local development services to the internet. it works by creating a persistent websocket connection between a client on your machine and a remote server.

key features

  • http tunneling: expose any local http service with a single command
  • secure connections: supports tls with let's encrypt for secure tunnels
  • custom subdomains: use your own memorable tunnel ids
  • automatic reconnection: client automatically reconnects if connection is lost
  • cross-platform: single binary for linux, macos, and windows

how it works

the flow is straightforward:

  1. the funnel client starts on your local machine and connects to the funnel server
  2. the funnel server registers a unique public url for your tunnel
  3. when a request comes in, the server proxies it through the websocket to the client
  4. the client forwards the request to your local service
  5. the response travels back through the same path

getting started

Last updated: July 18, 2025
by karol-broda