UDP tunnels expose local services that communicate over UDP — DNS resolvers, VoIP endpoints, TFTP servers, game servers, and more. OutRay forwards each datagram from the remote port to your local service and relays the response back to the sender.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/outray-tunnel/outray/llms.txt
Use this file to discover all available pages before exploring further.
Basic usage
udp.outray.app:53000 will have those packets forwarded to your local service on port 53.
Flags
| Flag | Type | Description |
|---|---|---|
--remote-port <port> | number | Request a specific remote port instead of a randomly assigned one. |
--org <slug> | string | Open the tunnel under a different organization without switching your active org. |
--key <token> | string | Override the auth token. Useful for CI/CD or scripted environments. |
--no-logs | boolean | Suppress per-packet log output in the terminal. |
How UDP tunneling works
UDP is a stateless protocol — there are no persistent connections. OutRay handles this by:- Receiving a datagram on the remote port.
- Forwarding the raw bytes to your local service on the configured port.
- Waiting up to 5 seconds for your local service to send a response back.
- Relaying that response to the original sender.
Requesting a specific remote port
By default, OutRay assigns a random available port. Use--remote-port to request a specific one:
Example use cases
DNS
Expose a local DNS resolver or testing server so remote clients can query it over UDP port 53.
VoIP
Forward RTP or SIP audio streams to a local VoIP application or softphone.
TFTP
Serve firmware or configuration files via TFTP to remote devices during testing.
Game servers
Expose a locally running UDP game server so players can connect without configuring port forwarding.
Stopping the tunnel
PressCtrl+C to stop the tunnel. The remote port is released and no more packets will be forwarded.