You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

coturn STUN服务:主机名/URL无法访问仅IP可行的问题排查

解决coturn无法通过主机名访问、仅支持IP的问题

核心原因分析

浏览器的STUN客户端对主机名解析存在特殊限制:

  • 现代浏览器优先采用标准DNS解析,不支持My-PC这类局域网短主机名(NetBIOS名称)的直接识别
  • 部分STUN实现要求主机名必须为完全限定域名(FQDN),而非无后缀的短名称

具体解决方案

1. 启用mDNS实现局域网主机名解析

通过mDNS(多播DNS)让主机名以.local后缀形式被浏览器正常解析:

  • Windows:开启系统服务中的「DNS Client」和「Function Discovery Resource Publication」
  • Linux/macOS:Linux安装avahi服务,macOS默认支持mDNS,直接使用主机名.local作为STUN地址,示例代码:
    const stunUrl = `stun:My-PC.local:3478`;
    const pc = new RTCPeerConnection({ iceServers: [{ urls: stunUrl }] });
    

2. 确保coturn监听所有网络接口

修改coturn配置文件(通常为/etc/turnserver.conf):

  • 设置listening-ip=0.0.0.0,让服务监听所有可用网卡的IP
  • 删除或注释单一listening-ip的配置项,避免遗漏主机名解析到的任意IP

3. 配置局域网静态DNS映射

借助路由器DHCP静态分配功能,给运行coturn的机器分配固定内网IP,再在局域网DNS服务器中注册主机名与IP的映射。这种方式无需手动修改每台设备的hosts文件,即可实现主机名访问。

4. 验证主机名解析有效性

在浏览器开发者工具控制台执行以下命令,确认主机名能正确解析到内网IP:

await dns.resolve('My-PC'); // 或My-PC.local

若返回对应IP则解析正常;若返回错误,需排查DNS/mDNS配置。

关于onicecandidateerror 701错误

该错误属于非致命反馈,是STUN客户端尝试多种候选地址时的正常失败情况,只要能成功获取srflx类型的候选地址,就不会影响WebRTC连接,无需额外处理。

内容的提问来源于stack exchange,提问作者jeremykentbgross

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 14:35:09