STUN / TURN 服务器测试

在浏览器中验证您的 ICE 服务器是否正常工作,以及它们返回哪些候选地址。

服务器 URL

结果

    ICE 候选地址

    类型地址协议时间

    STUN 和 TURN 服务器的作用

    WebRTC 支撑着视频通话、屏幕共享以及浏览器之间的文件传输。两台设备在直接通信之前,各自都需要知道对方可以通过哪个地址访问。然而,大多数设备位于家用路由器或企业防火墙之后,使用经 NAT 转换的私有地址。STUN 和 TURN 服务器正是为了解决这个问题:

    • STUN 告诉设备它在互联网上呈现的样子:即它的公网 IP 地址和端口。有了这些信息,两个对等端通常就能直接建立连接。
    • TURN 在无法直接连接时充当中继,例如在对称型 NAT、严格的防火墙或只允许 TCP 的网络之后。

    运行测试

    1. 输入带有 stun:、turn: 或 turns: 前缀的服务器 URL(例如 stun:server.example.com:3478 或 turn:server.example.com:3478?transport=tcp)。
    2. 对于 TURN 服务器,请填写用户名和凭据。如果您使用的是有时效的凭据,请确保其尚未过期。
    3. 如有需要可添加更多服务器,然后运行测试。您的浏览器会收集 ICE 候选地址,并逐条列出其类型、地址、协议以及到达所用的时间。

    如果您没有自己的服务器,可以选择测试我们的服务器,看看正常工作时的结果是什么样子。

    解读候选地址类型

    结果中的每一行都是一个 ICE 候选地址,其含义取决于类型:

    • host:设备自身的本地地址。出于隐私考虑,现代浏览器会将其隐藏在一个随机的 .local 名称后面。
    • srflx:STUN 服务器报告的公网地址。看到它,说明 STUN 工作正常。
    • relay:TURN 服务器分配的中继地址。看到它,说明 TURN 和身份验证都工作正常。
    • prflx:在连通性检查过程中发现的地址;在单端测试中很少出现。

    时间一栏显示每个候选地址在测试开始后多少毫秒到达,可以大致反映服务器的距离和负载;数百毫秒的时间会明显拖慢通话的建立。

    常见问题

    • 没有 relay 候选地址:用户名或密码错误、服务器上的 static-auth-secret 不匹配,或 TURN 端口被防火墙阻止。
    • 只能通过 UDP 工作:为受限网络中的用户添加 ?transport=tcp,或在 443 端口上使用 turns:(TLS)。
    • turns: 失败但 turn: 正常:TLS 证书可能无效、已过期或与主机名不匹配。
    • srflx 地址与预期不符:在使用 CGNAT 或 VPN 时,公网地址属于您的运营商或 VPN 服务商。

    测试完全在您的浏览器中运行;您输入的凭据仅供浏览器连接到您指定的服务器使用。要查看您的公网 IP 和 WebRTC 泄露情况,请访问我的 IP 是多少。要通过 WebRTC 数据通道测量真实丢包,请试试丢包测试;在调优您自己应用的通话质量之前,也可以先用 ping 测试检查基础延迟。

    工具