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

部署在Digital Ocean Ubuntu的OpenVidu出现ERRCONNRESET错误求助

解决OpenVidu部署在DigitalOcean Ubuntu上的ERRCONNRESET会话连接问题

我帮你梳理下这个ERRCONNRESET问题的排查方向,结合你描述的场景(本地运行正常、已配置可信HTTPS证书、默认账号登录无异常),大概率是网络配置或WebSocket通信层面的问题,咱们一步步来排查:

1. 先确认DigitalOcean安全组与Ubuntu防火墙的端口开放

OpenVidu除了HTTPS的443端口,还需要一系列媒体流和STUN服务的端口,这些端口没开放的话,会话连接会直接中断:

  • 登录DigitalOcean控制面板,进入你的Droplet对应的安全组设置,确保开放以下端口:
    • 443/tcp(HTTPS)
    • 3478/tcp、3478/udp(STUN服务)
    • 40000-65535/udp、40000-65535/tcp(媒体流传输)
  • 再检查Ubuntu本地的ufw防火墙规则:
    运行命令查看当前开放端口:
    sudo ufw status
    
    如果上面的端口没在列表里,添加规则并重启防火墙:
    sudo ufw allow 443/tcp
    sudo ufw allow 3478/tcp
    sudo ufw allow 3478/udp
    sudo ufw allow 40000-65535/udp
    sudo ufw allow 40000-65535/tcp
    sudo ufw reload
    

2. 验证OpenVidu Server的核心配置

登录正常但会话连不上,大概率是WebSocket的配置出了问题:

  • 打开OpenVidu的环境配置文件(通常在/opt/openvidu/.env),检查两个关键参数:
    • OPENVIDU_DOMAIN_OR_PUBLIC_IP:必须填你绑定HTTPS证书的域名,不能用IP地址(证书是和域名绑定的,IP会导致SSL握手失败)
    • OPENVIDU_SECURE:设置为true,确保启用HTTPS模式的WebSocket
  • 重启OpenVidu服务让配置生效:
    sudo systemctl restart openvidu-server
    

3. 检查NodeJS客户端的连接参数

本地正常说明代码逻辑没问题,但服务器环境下可能连接地址配置有误:

  • 确保客户端初始化OpenVidu时,用的是完整的线上HTTPS域名,比如:
    const ov = new OpenVidu('https://your-production-domain.com');
    
    别用localhost或者服务器IP,不然WebSocket会因为域名和证书不匹配直接断开
  • 检查代码里有没有硬编码本地环境的连接地址,部署时一定要替换成线上域名

4. 排查WebSocket的SSL兼容性

即使是可信证书,NodeJS版本过低或者客户端SSL配置不当也会导致连接中断:

  • 如果你的客户端用的是openvidu-node-client,可以显式配置WebSocket的SSL选项,确保Origin和域名一致:
    const ov = new OpenVidu('https://your-production-domain.com', {
      wsOptions: {
        rejectUnauthorized: true, // 可信证书设为true,自签证书才需要设为false
        headers: {
          'Origin': 'https://your-production-domain.com'
        }
      }
    });
    
  • 建议把NodeJS升级到LTS版本(比如18.x或20.x),旧版本对部分新型SSL证书的兼容性较差

5. 查看日志定位具体错误

如果上面的步骤都没解决,直接看日志找线索:

  • 查看OpenVidu Server的实时日志:
    sudo journalctl -u openvidu-server -f
    
  • 同时观察NodeJS终端的错误栈,看是SSL握手失败、连接超时还是其他具体问题

6. 直接测试WebSocket连接

用wscat工具直接测试WebSocket连通性,能快速定位问题:

  • 先安装工具:npm install -g wscat
  • 运行测试命令:wscat -c wss://your-production-domain.com/openvidu
  • 如果连接成功会显示握手信息;如果失败,终端会给出具体错误(比如证书不匹配、端口不通)

按照上面的步骤逐一排查,基本能解决这个ERRCONNRESET问题。大部分情况下,都是端口未开放或者WebSocket的域名/SSL配置不匹配导致的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:38:37