rough-apartment-56222
03/03/2026, 12:48 PMtall-airline-16756
03/03/2026, 12:48 PMtall-airline-16756
03/03/2026, 12:48 PMturns:...:443?transport=tcp
◦ UDP/TCP on standard TURN ports if used
• Confirm LiveKit is configured to use TURN:
◦ LK_TURN_ENABLED = true
◦ LK_TURN_URI includes your turns: URI
◦ LK_TURN_SECRET set correctly
• To force testing through TURN on clients, set the WebRTC policy to relay:
◦ Example: connect options / rtcConfig: iceTransportPolicy: 'relay'
◦ This helps confirm TURN relaying works independently of direct candidates.
3) Check network interface binding / what candidates are being generated
• Inspect LiveKit pod logs for ICE candidate lines. You should see typ srflx (server reflexive) or typ relay (TURN) rather than only typ host (private host IP).
◦ Command: kubectl logs <livekit-pod> -n <namespace>
• If you only see host candidates with private IPs, that indicates the advertise address isn’t applied or the container is binding to the internal interface.
4) Verify certificates and TLS
• TURN over TLS requires valid certs. Self-signed certs often cause TLS/TURN failures.
• Ensure <http://turnlivekit.domain.com|turnlivekit.domain.com> and your LiveKit domain both have valid CA-signed certificates (Let’s Encrypt or other CA).
5) Firewall / routing checks
• Ensure firewall / security groups allow required inbound/outbound:
◦ TCP 443 (if using TLS TURN)
◦ UDP 3478/5349 and any other ports your TURN uses
• From an external machine, test connectivity to the TURN host/port (e.g., curl or openssl s_client for TLS).
6) Use the LiveKit Connection Tester
• Run the LiveKit connection test utility to check WebRTC, WebSocket, and TURN connectivity. It helps isolate whether the issue is ICE, DTLS, or TURN-related.
If you want, I can help more precisely — please provide:
• The LiveKit pod logs showing ICE candidate output (redact secrets).
• Your LiveKit env vars related to advertise address and TURN (LIVEKIT_ADVERTISE_ADDRESS / LIVEKIT_IP / LK_TURN_*).
• The exact TURN URI you’re using (anonymize secrets), and whether the TURN server uses a CA-signed cert.
• Whether clients are on the public internet or behind a corporate/NAT/proxy.
If you share those, I’ll point to the next targeted steps (what to change and what to watch in logs).
Sources: Firewall Tips for LiveKit Connectivity | LiveKit | Configure ZScaler proxy for LiveKit connections | LiveKit | Diagnosing Connection Errors with Connection Test Utility | Diagnosing Connection Errors with the Connection Test Utility | LiveKit