OpenReplay Logo
12k
12k

WebRTC ICE test

Point at a STUN or TURN server, gather ICE candidates and confirm it actually works — the Trickle ICE check, running entirely in your browser.

STUN / TURN servers

Runs in your browser
ICE transport

Relay only forces a TURN-only test, ignoring STUN and host candidates.

Optional. Without media permission, Chrome gathers candidates from one network interface only; granting it surfaces every interface. Nothing is recorded — the stream is stopped immediately.

ICE candidates

No candidates yet. Add a server and select Gather candidates.

About this tool

This is the Trickle ICE check developers reach for when a WebRTC connection will not establish. Enter a STUN or TURN server URI (plus a username and credential for TURN) and the tool spins up a local RTCPeerConnection that uses only that server, gathers ICE candidates and reports what it finds. A server-reflexive (srflx) candidate means STUN works; a relay candidate means TURN works.

Bad TURN credentials surface as a 401 in the onicecandidateerror event — the single most useful diagnostic — so you can tell an auth problem from an unreachable host. Set the transport policy to "Relay only" to force a TURN-only test, or grant the optional mic/camera permission so the browser exposes candidates from every network interface instead of just one. Click any address to copy it.

Server URIs and TURN credentials are passed only to your browser's local RTCPeerConnection — nothing is sent to OpenReplay. The one inherent network action is the STUN/TURN binding request to the server you are testing, which is the whole point of the tool. Note that a STUN test, by design, reveals your public IP to that STUN server.

Frequently asked questions

What is a STUN server?

A STUN server tells a device its own public IP address and port as seen from the internet, so two peers behind NAT can find a route to each other. WebRTC uses it to gather "server-reflexive" (srflx) candidates. It only discovers addresses — it does not relay media.

What is a TURN server?

A TURN server relays media between peers when a direct connection is impossible (symmetric NAT or restrictive firewalls). Unlike STUN, traffic flows through it, so it needs credentials. In WebRTC, a working TURN server produces a "relay" candidate.

What's the difference between STUN and TURN?

STUN only discovers your public address so peers can connect directly; it's lightweight and free. TURN relays the actual traffic when a direct path fails, which costs bandwidth and needs authentication. Most WebRTC setups try STUN first and fall back to TURN.

How do I test if a TURN server is working?

Enter the turn: URI plus its username and credential, set transport to "relay", and gather candidates. If a candidate of type "relay" appears, the TURN server works. If you get a 401 error instead, the credentials are wrong; no candidates at all means it's unreachable.

How do I know if a STUN server is working?

Enter the stun: URI and gather candidates. If a candidate of type "srflx" (server-reflexive) appears with your public IP, the STUN server is reachable and working. If only "host" candidates appear, the STUN server didn't respond.

What is Trickle ICE?

Trickle ICE is the WebRTC technique of sending ICE candidates to the other peer as they're discovered, instead of waiting for gathering to finish. This tool runs the same candidate-gathering process so you can watch each candidate appear and confirm a server responds.