dxflow provides powerful tunneling capabilities through its proxy-bridge architecture, enabling you to expose local services securely over WebSocket connections with automatic subdomain allocation.
dxflow tunneling uses a sophisticated proxy-bridge architecture with WebSocket tunnels:
Proxy Mode (Hub)
Central Traffic Router
Bridge Mode (Node)
Local Service Gateway
Every proxy and bridge connection uses a unique identity:
| Aspect | Description |
|---|---|
| Format | 12-byte array (displayed as alphanumeric, e.g., ab1234567890) |
| Generation | Derived from alphanumeric string, zero-padded if needed |
| Usage | Subdomain allocation and routing identification |
Connection Handling Process:
User connects with subdomain
↓
UserConnection → ProxyPool.UserSide → Broadcast to Bridge → Wait for pairing
↓
Bridge receives broadcast
↓
Bridge WebSocket → Decode Identity → Create Gateway Connection → ProxyPool.BridgeSide
↓
Pairing and transfer
↓
ProxyPool pairs connections → TcpPair transfers data → Update statistics
Key Components:
| Component | Description |
|---|---|
| Connection Pooling | 8-second timeout window for connection pairing |
| Bidirectional Transfer | TCP traffic flows through WebSocket frames |
| Traffic Statistics | Real-time tracking of read/write bytes |
| Hijack Detection | Incoming connections analyzed for subdomain requests |
dxflow provides dxflow.ai as a ready-to-use public hub:
Hub Features:
dxflow.aiFor private tunneling with your own infrastructure:
Private Hub Benefits:
Connect bridge nodes to expose local services:
# Start bridge connecting to default hub (dxflow.ai)
dxflow boot up --bridge --daemon
# Bridge receives subdomain from hub
# Default: 1 connection, 10MB traffic limit
# List active proxies on hub
dxflow proxy list
# Create new proxy allocation
dxflow proxy create
# Remove unused proxies
dxflow proxy prune
# List bridge connections
dxflow bridge list
# Disconnect bridge temporarily
dxflow bridge disconnect <identity>
# Reconnect bridge
dxflow bridge connect <identity>
# Clean up inactive bridges
dxflow bridge prune
Every proxy-bridge connection uses a 12-character alphanumeric identity:
| Property | Details |
|---|---|
| Format | 12-byte alphanumeric (e.g., ab1234567890) |
| Usage | Subdomain allocation and traffic routing |
| Generation | Automatically created during connection |
Proxy Credentials
Auto-Generated
Gateway Authorization
Optional Security
dxflow optimizes performance through intelligent connection pooling:
dxflow tunneling comes with different defaults for hubs and nodes:
dxflow.ai Hub
dxflow.ai (public)Bridge Nodes
dxflow tunneling includes several security measures:
Upstream Validation
Private IP Only
TLS Support
Encrypted Connections
The hijack protocol enables efficient routing:
<identity|fingerprint>
| Element | Description |
|---|---|
identity | 12-byte bridge identifier |
fingerprint | UUID for connection tracking |
| Connection Type | Characteristics |
|---|---|
| Direct Proxy | Minimal overhead, production-ready, low latency |
| Bridge Tunnel | WebSocket overhead, development/testing scenarios |
Hub Metrics
(↓ download) (↑ upload)Node Metrics
"Proxy not available"
"Proxy not connected"
"Bridge not allowed"
"Traffic limit exceeded"
dxflow --log-level=debug boot up --proxySecurity First
Performance
Reliability
The tunneling system provides REST APIs for programmatic control:
# List active proxies
curl http://hub/api/proxy/
# Create new proxy
curl -X POST http://hub/api/proxy/
# Remove inactive proxies
curl -X DELETE http://hub/api/proxy/prune/
# List bridge connections
curl http://node/api/bridge/
# Reconnect specific bridge
curl -X POST http://node/api/bridge/{identity}/connect/
# Clean up inactive bridges
curl -X DELETE http://node/api/bridge/prune/
The tunneling architecture enables secure, scalable access to distributed services while maintaining simplicity in configuration and management.