v1.0.1 — stable

Tunnel anything.
No public IP needed.

One binary, two roles. Like frp, but built on QUIC. Expose local services over encrypted tunnels.

Download v1.0.1 Quick Start
Single Binary QUIC Native Token Auth Auto-Reconnect Prometheus Metrics
curl -sL https://github.com/outpostos/OutpostNet/releases/download/v1.0.1/outpostnet-agent-v1.0.1-linux-amd64.tar.gz | tar xz
sudo mv outpostnet-agent-v1.0.1-linux-amd64 /usr/local/bin/outpostnet-agent
Capabilities

Everything you need to punch through NAT

TCP & UDP Proxy

Full Layer 4 protocol support. HTTP, gRPC, DNS, gaming protocols — anything that speaks TCP or UDP works out of the box.

QUIC Encrypted Tunnels

Cross-region tunnels built on QUIC with TLS 1.3. Multiplexed streams, zero round-trip connection setup, and resilience to network changes.

Single Binary

One binary handles both server and client roles. No separate frps/frpc to deploy or keep in sync.

Token Authentication

Agent-to-agent token-based auth for tunnel establishment. No certificates to manage, no PKI to deploy.

Auto-Reconnect

Tunnels automatically reconnect with exponential backoff. Config persistence ensures recovery even after full restarts.

Prometheus Metrics

Built-in observability. Track tunnel state, active streams, bytes transferred, reconnect counts, and relay performance.

Architecture

How It Works

One binary (outpostnet-agent), two roles — like frp's frps + frpc, unified.

Host A (server role) Host B (client role) ┌──────────────────┐ ┌──────────────────┐ │ App (:8080) │ QUIC Tunnel │ App (:9080) │ │ │ │ (TLS 1.3) │ │ │ │ ▼ │ │ ▼ │ │ outpostnet-agent ◄══════════════════► outpostnet-agent │ │ (export) │ │ (import) │ └──────────────────┘ └──────────────────┘
Comparison

OutpostNet vs FRP

Capability OutpostNet 1.0 FRP
Binaries needed 1 (outpostnet-agent) 2 (frps + frpc)
TCP & UDP Proxy Yes Yes
Transport QUIC (TLS 1.3) TCP / KCP / QUIC
Token Auth Yes Yes
Stream Mux QUIC native yamux
Auto-Reconnect Yes Yes
Metrics Prometheus Dashboard
HTTP Vhost Roadmap Yes
Dashboard UI Roadmap Yes
Quality

Test Results

v1.0.1 · 2026-03-31 · Linux x86_64 · Go 1.22

333
Tests Passed
0
Failures
~85%
Code Coverage
176 MB/s
Tunnel Throughput
677 µs
Stream Open Latency

Coverage by Package

PackageCoverageTests
internal/controller/webhook95.7%Sidecar injection webhook
pkg/annotations95.5%Kubernetes annotation helpers
pkg/agentconfig94.0%Agent config generation
pkg/config88.5%Config parsing, defaults, watcher
pkg/protocol88.5%Service/relay header framing
pkg/tunnel85.0%QUIC transport, TLS, stream mux
internal/server84.3%Route management, relay fallback
internal/agent83.1%Health, config watcher, cross-region, relay
pkg/tunnel/tlsutil81.8%TLS cert generation & config
internal/sidecar81.3%Export/import, reconnect, shutdown
internal/controller/reconciler77.8%K8s EndpointSlice + Pod reconciler

End-to-End Scenarios

ScenarioResultDuration
TCP end-to-end (single connection)PASS0.36s
TCP multiple concurrent connectionsPASS0.36s
UDP end-to-end forwardingPASS0.35s
FRP-style tunnel, no regionPASS0.81s
Multi-service stream multiplexingPASS1.05s
Three-node relay chainPASS1.17s
Disconnect & reconnect, no data lossPASS1.87s
Token auth — valid & invalidPASS2.06s total
Relay hop limit enforcementPASS1.51s / 1.92s
Large data transfer (cross-region)PASS1.11s

Performance Benchmarks

BenchmarkSingleStreamThroughput-8 18076 ops 185683 ns/op 176.47 MB/s BenchmarkStreamOpenClose-8 5439 ops 676917 ns/op ~677 µs/stream Platform: Intel Core i5-8250U @ 1.60GHz · Linux x86_64 · QUIC/TLS 1.3 loopback

Full report: docs/test-report-v1.0.md

Ready to tunnel?

Download the single binary and expose your first service in under two minutes.

Download v1.0.1 Quick Start Guide View on GitHub