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

Node.js WebSocket在OVH/Kimsufi服务器上连接超时问题咨询

嘿,我之前在OVH/Kimsufi的独立服务器上部署WebSocket服务时也碰到过几乎一模一样的超时问题,让我帮你一步步梳理排查方向:

先明确:虚拟主机本身不会直接阻塞WebSocket,但这些配置坑会导致超时

虚拟主机本身支持WebSocket,但如果你的服务器用了反向代理(比如Nginx/Apache),或者服务商的防火墙没开对应端口,就会出现连接超时的情况。下面是具体的排查步骤:

1. 优先检查:服务器端口是否对外开放

OVH/Kimsufi的服务器默认有两层防火墙:系统层面的iptables/ufw,还有OVH控制面板里的硬件级网络防火墙,这俩都可能挡住3005端口:

  • 先登录OVH后台,找到你的服务器,进入「Network Firewall」页面,添加一条允许TCP 3005端口入站的规则;
  • 然后登录服务器终端,执行sudo iptables -L -n查看系统防火墙规则,如果没有允许3005的条目,添加规则:sudo iptables -A INPUT -p tcp --dport 3005 -j ACCEPT;
  • 如果你的服务器用了ufw防火墙,直接执行sudo ufw allow 3005/tcp就行。

2. 验证端口是否真的能被外部访问

端口开放后,从本地测试一下能不能连通:

  • 打开终端执行telnet 你的服务器公网IP 3005,如果显示「Connected」说明端口没问题,要是连不上,那肯定是防火墙还没配置好;
  • 或者用curl测试:curl -v ws://你的服务器IP:3005,看输出里有没有连接成功的提示。

3. 如果用了Nginx/Apache做虚拟主机,必须配置WebSocket转发

如果你在服务器上配置了虚拟主机(比如用Nginx托管网站,同时想把WebSocket请求转发到3005端口),默认的反向代理配置不会处理WebSocket的升级请求,必须加专门的规则:

Nginx配置示例(加到你的虚拟主机server块里):

location / {
    proxy_pass http://localhost:3005;
    # 关键:启用HTTP/1.1,支持WebSocket升级
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
}

Apache配置示例:

先启用mod_proxy和mod_proxy_wstunnel模块,然后添加:

ProxyPass /ws ws://localhost:3005
ProxyPassReverse /ws ws://localhost:3005

配置完记得重启Nginx/Apache,这样WebSocket请求才能正确转发到你的Node服务。

4. 顺便提个服务端代码的小bug

虽然这不是超时的原因,但你的代码里有个小问题:console.log(data)里的data没定义,应该改成console.log(message),不然客户端发消息时服务端会报错,可能导致后续连接异常。

5. 最后确认客户端连接地址

确保客户端用的ws://------.---:3005里的域名/IP是服务器的公网地址,而且域名已经正确解析到服务器IP,别用内网地址或者没解析的域名。

按照这些步骤排查下来,大概率能解决超时问题,我当时就是OVH的硬件防火墙没开端口导致的,开了之后立刻就通了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:27:33