You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

集成Agora的网站自动化场景下,虚拟机受限网络无法访问Agora外部URL的解决方法咨询

修复受限网络下Agora集成网站的访问问题

咱们先理清楚核心问题:Agora的实时音视频服务依赖一整套公网域名、IP和端口,只放行部分站点肯定覆盖不全。下面是一步步落地的修复方案,按顺序排查就能解决:

1. 补全Agora所需的完整网络资源白名单

Agora的服务不是只靠一两个域名就能跑起来的,你需要把以下范围全部加入虚拟机的防火墙/网络准入列表:

  • 域名范围:覆盖*.agora.io*.agora.cn这类通配符域名(不同区域的服务域名略有差异,要对应你使用的Agora服务区域),还有具体的媒体调度域名比如global.agora.io
  • 端口范围:必须放行UDP的3478、4700-4900端口(Agora媒体流主要走UDP),以及TCP的443、80端口(用于SDK初始化和信令交互)

之前只加了部分站点,大概率是漏了这些关键项,补全后先测试基础访问。

2. 检查虚拟机的代理配置(如果有)

如果你的虚拟机是通过代理访问外部网络,要注意两个关键点:

  • 确认代理支持UDP转发:很多默认代理只处理TCP流量,但Agora的媒体流依赖UDP,这会直接导致连接失败
  • 把Agora的域名加入代理的「无需代理列表」(正向代理场景),或者确保代理服务器已经放行这些域名的全量流量

3. 调整Agora Web SDK的初始化配置

如果网站用的是Agora Web SDK,检查代码里的初始化参数,适配受限网络环境:

  • 可以强制开启TCP/UDP双模式,让SDK自动选择可用的传输方式,示例代码如下:
const client = AgoraRTC.createClient({ 
  mode: 'live', 
  codec: 'h264', 
  rtcConfig: { enableUdp: true, enableTcp: true } 
});
  • 如果你们部署了Agora本地私有服务(On-Premise方案),一定要把SDK的服务器地址改成内网地址,而不是默认的公网域名

4. 用命令行验证网络连通性

在虚拟机里用工具测试关键资源的可达性,定位具体阻塞点:

  • 测试域名解析:nslookup global.agora.io,看是否能正常解析到Agora的服务器IP
  • 测试TCP端口:telnet global.agora.io 443nc -zv global.agora.io 443,确认端口能正常连接
  • 测试UDP端口:nc -zuv global.agora.io 3478,验证UDP通道是否畅通

5. 从浏览器日志定位具体错误

当网站触发报错时,打开浏览器开发者工具(F12),查看ConsoleNetwork面板:

  • 重点看是否有DNS resolution failedConnection refused这类具体错误,根据错误信息针对性补全白名单或调整网络规则

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

火山引擎 最新活动