When troubleshooting WebRTC connectivity issues, it is helpful to confirm whether or not the client can successfully reach the necessary STUN server. This guide provides a quick set of instructions to validate reachability
Open a chrome web browser
Open the inspector (right-click>inspect)
Choose the ‘Console’ tab
Paste in this block of code
const iceServers = [ { urls: 'stun:stun.l.google.com:19302?transport=udp' }, ]; const pc = new RTCPeerConnection({ iceServers }); pc.onicecandidate = (e) => { if (!e.candidate) return; // Display candidate string e.g // candidate:842163049 1 udp 1677729535 XXX.XXX.XX.XXXX 58481 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag sXP5 network-cost 999 console.log(e.candidate.candidate); if(e.candidate.type == "srflx"){ console.log("The STUN server is reachable!"); console.log(` Your Public IP Address is: ${e.candidate.address}`); } }; pc.onicecandidateerror = (e) => { console.error(e); }; pc.createDataChannel('stun-test'); pc.createOffer().then(offer => pc.setLocalDescription(offer));
Press enter
Observe the response
Log errors:
In most of the cases, even if the required path is open, you will find a STUN host lookup received an error. Chrome tried to look up the IPv6 DNS record for server and got an error in that process. This is expected. However, it may still be accessible through the IPv4 address.
A response should look something like this if it worked