Expose local services to the internet in seconds. Run your own infrastructure or use our managed tunnels — no config needed.
Open source · No credit card required · Self-host for free
❯ gotunnel http 3000 --server tunnel.gotunnel.dev
❯
$ gotunnel deploy --mode [self-hosted|managed]
› resolving deployment target▊
// two modes. same binary protocol. same stream multiplexing. same TLS.
// choose based on ownership preference — not capability.
Deploy the GoTunnel server binary on any Linux VPS. You own the infrastructure, the certs, the config, and the data. Built for teams who can't send traffic through third-party servers.
❯gotunnel server --config server.yaml
GoTunnel Server v1.1.0
Listening on :7000 (control)
Public port range :8000–9000
TLS enabled
Auth token
Waiting for clients...
Connect to GoTunnel's managed infrastructure in one command. No server to provision, no certs to manage. Get a live public URL in under five seconds — perfect for demos, webhooks, and rapid iteration.
❯gotunnel http 3000 --server tunnel.gotunnel.dev
Connected to managed server
Forwarding https://xyz.tunnel.gotunnel.dev → localhost:3000
Status connected ✓
Latency 12ms
Streams 4 active
Uptime 00:04:31
Both modes use the same binary protocol with stream multiplexing and TLS encryption end-to-end.
$ gotunnel inspect --capabilities
› loading feature manifest▊
// engineered from the protocol layer up — not bolted on after.
// custom binary protocol · stream multiplexing · TLS 1.3 · single binary.
Handle multiple concurrent connections over a single secure tunnel without overhead.
End-to-end encrypted tunnel traffic using TLS. Custom certs or auto-generated.
Gate tunnel access with secure token validation. Rate limiting and lockout built in.
Exponential backoff reconnect loop recovers from network drops without manual intervention.
Tunnel any TCP-based service — HTTP, HTTPS, SSH, Postgres, Redis, and beyond.
Track latency, active streams, bandwidth, and connection health via Prometheus export.
Run multiple tunnel clients simultaneously with independent stream pools and auth.
Ships as a single compiled Go binary. No runtime, no containers, no package manager.
$ gotunnel trace --session current
› resolving packet path▊
// traffic enters the public internet and exits at your localhost.
// encrypted end-to-end. no port forwarding. no firewall rules.
Run the GoTunnel client and point it at your local service port. One command — no config files, no firewall rules.
❯gotunnel http 3000 --server tunnel.gotunnel.dev
› resolving tunnel.gotunnel.dev
$ gotunnel query --use-cases
› scanning workflow registry▊
// from webhook testing to remote debugging — GoTunnel keeps your development moving.
// 6 registered workflows · all environments · zero config.
Receive third-party callbacks from payment gateways, CI pipelines, or any external API without deploying your app.
Share working applications with clients instantly using secure public links — no staging environment needed.
Connect iOS and Android apps to local APIs without cloud deployment or ngrok subscriptions.
Access services running behind firewalls securely from any remote location without VPN complexity.
Expose services running inside restricted, embedded, or air-gapped networks without opening firewall ports.
Safely share dashboards, admin panels, and development tools across distributed teams in real time.
$ gotunnel benchmark --output metrics
› running perf suite▊
// benchmarked on reference hardware under sustained load · single binary · no sidecar.
// optimized for speed, scalability, and reliable connections.
Minimal added latency across tunnel connections under sustained load.
High-speed data transfer across active tunnels.
Simultaneous connections per server instance.
Efficient resource usage per active session.
Automatic reconnection with exponential backoff — no manual restart.
$ gotunnel audit --security-model
› loading security manifest▊
// secure connections, controlled access, and reliable session protection.
// designed for production · no plaintext · no shared sessions.
All tunnel traffic is encrypted end-to-end using TLS 1.3. Custom certificates or auto-generated — zero plaintext in transit.
Clients authenticate using secure access tokens before a tunnel session is established. Invalid tokens are rejected at the handshake layer.
Each tunnel session runs in an isolated stream context. Traffic from one client cannot bleed into another session.
Persistent heartbeat checks detect dropped or stale connections. Dead sessions are terminated and cleaned up automatically.
Define authentication policies per tunnel — token-based, JWT, or API key. Unauthorized connections are dropped before proxying begins.
Configurable payload size limits and connection rate controls reduce exposure to abuse and bandwidth exhaustion attacks.
$ gotunnel billing --list-plans
› loading plan registry▊
// start free with self-hosted tunnels, or use our managed infrastructure.
// no hidden fees · cancel anytime · open-source core.
Full control. Deploy on your own infrastructure at zero cost.
Managed tunnels for solo developers and side projects.
Built for active developers who need reliable, persistent tunnels.
Shared infrastructure and access controls for engineering teams.
$ gotunnel http 3000▊
Run GoTunnel your way — connect to our managed infrastructure instantly, or deploy the server binary on your own VPS. Same binary. Same protocol.
open source · no credit card required · self-host for free
❯gotunnel http 3000
Connected to managed server
Forwarding https://xyz.tunnel.gotunnel.dev → localhost:3000
Status connected ✓ latency: 11ms