TCP tunnels
tnnl tcp <port> exposes a raw TCP service — SSH, Postgres, Redis, game servers, anything — on a dedicated public port.
$ tnnl tcp 22
Tunnel ready: tnnl.uz:2222Public ports
By default the server picks a free public port and reports it, for example tnnl.uz:2222. To request a specific port, pass --remote-port N; it is granted if that port is free. Each TCP tunnel uses its own public port, unlike HTTP tunnels, which share port 443.
Opaque passthrough
A TCP tunnel is an opaque byte passthrough — there is no request parsing. Because of that, request inspection does not apply to TCP tunnels: only connection and byte counters appear in tnnl tunnels and in the dashboard.
Example: SSH
Expose your SSH daemon, then connect using the reported port:
$ tnnl tcp 22
Tunnel ready: tnnl.uz:2222$ ssh -p 2222 user@tnnl.uzStaying connected
TCP tunnels auto-reconnect if the connection drops. Press Ctrl-C to stop the tunnel.
Limits
Each tunnel counts toward your per-account limit. See Limits & permissions.