WSS排错检查

最直接、能立刻验证 8888 端口 WSS 服务是否正常的排查方法,按顺序做就行:


1. 先确认端口本身监听正常

bash 复制代码
ss -tulpn | grep 8888

看到有 LISTEN 且是 0.0.0.0:8888 或 :::8888 才对外可用。


2. 测试端口是否能连通(TCP 层)

bash 复制代码
telnet 你的服务器IP 8888

或

bash 复制代码
nc -zv 你的服务器IP 8888
  • 连通成功:说明端口开放、防火墙放行
  • 连不上:优先查 防火墙/安全组(阿里云/腾讯云安全组一定要开8888)

3. 直接测试 WSS 服务是否正常(最关键)

方法A:用 wscat 工具(推荐)

安装:

bash 复制代码
npm install -g wscat

测试:

bash 复制代码
wscat -c wss://你的域名:8888/xxx
  • 连上不报错 → WSS 正常
  • 报错 Error: connect ETIMEDOUT → 端口/防火墙不通
  • 报错 SSL certificate invalid → 证书有问题

4. 浏览器在线工具快速测(不用装软件)

打开任意在线 WebSocket 测试工具:

  • 地址填:wss://你的域名:8888
  • 点连接
    • 连上 → 正常
    • 失败 → 看浏览器 F12 Console 报错

5. 常见 WSS 8888 不通的原因

  1. 云服务器安全组没放行 8888(最常见)
  2. 服务器防火墙 firewalld/ufw 没开 8888
  3. WSS 服务只监听 127.0.0.1,没对外 0.0.0.0
  4. SSL 证书不匹配/过期/不被信任
  5. 后端 WebSocket 服务挂了

你把这3个信息发我,我能直接帮你定位问题:

  1. 你的 WSS 完整地址(wss://xxx:8888/...)
  2. ss -tulpn | grep 8888 结果
  3. 浏览器 F12 里的报错截图/文字

WSS遇到的这个报错 Hostname/IP does not match certificate's altnames,核心问题是:你用 IP 地址(49.8.*.202)访问 WSS 服务,但 SSL 证书是绑定在域名上的,证书里没有包含这个 IP 地址,导致 SSL 验证失败。

1. 先解释报错的本质

SSL/TLS 证书(WSS 依赖的证书)是和域名绑定 的(比如 wss://yourdomain.com:8888),而不是和 IP 绑定。当你直接用 wss://49.8.*.202:8888 访问时,客户端会校验:证书里的"允许访问的域名/IP列表(altnames)"是否包含 49.8.*.202,显然你的证书里只有域名,没有这个 IP,所以直接报错。

2. 解决方法(按优先级排序,推荐第一种)

方法1:用域名访问(最标准、推荐)

这是解决该问题的根本方法,符合 SSL 证书的设计逻辑:

  • 确保你的域名(比如 ws.yourdomain.com)已经解析到 49.8.*.202;

  • 把测试 WSS 的地址从 wss://49.8.*.202:8888 改成 wss://ws.yourdomain.com:8888;

  • 重新用 wscat 或浏览器测试:

    bash 复制代码
    wscat -c wss://ws.yourdomain.com:8888
方法2:临时跳过 SSL 验证(仅测试用,不推荐生产环境)

如果只是临时测试,不想改域名,可以让客户端跳过 SSL 证书校验:

  • 用 wscat 测试时加 --no-check 参数:

    bash 复制代码
    wscat -c wss://49.8.*.202:8888 --no-check
  • 浏览器测试:无法直接跳过(浏览器安全机制限制),所以优先用方法1。

方法3:给证书添加 IP 作为备用名称(进阶)

如果必须用 IP 访问,需要重新申请/修改 SSL 证书,把 49.8.*.202 加入证书的 Subject Alternative Name (SAN) 字段(即 altnames)。

  • 免费证书(如 Let's Encrypt):需要用支持 IP 证书的工具申请(Let's Encrypt 仅支持特定场景的 IP 证书);
  • 付费证书:联系证书服务商添加 IP 到 SAN 列表,重新签发证书。

3. 验证是否解决

执行以下命令,若能正常连接且无证书不匹配报错,说明问题解决:

bash 复制代码
# 用域名测试(推荐)
wscat -c wss://你的域名:8888

# 或临时跳过验证测试 IP
wscat -c wss://49.8.*.202:8888 --no-check

总结

  1. 核心问题:SSL 证书绑定域名,用 IP 访问时证书校验不通过;
  2. 最优解:改用证书绑定的域名访问 WSS 服务,而非直接用 IP;
  3. 临时测试:用 wscat --no-check 跳过 SSL 验证,但生产环境必须用域名。
相关推荐
惊讶的猫33 分钟前
F12 Network:把“发 HTTP 请求”这件事变成看得见的东西
网络·网络协议·http
Lsetea33 分钟前
OpenSSL报certificate rejected:error 28与CA辅助信任属性排查
linux·https·ssl证书·openssl·证书链
沫璃染墨36 分钟前
从零入门计算机网络系列(五):UDP套接字编程实战——从核心API到客户端与服务器通信
linux·网络·c++·vscode·网络协议·udp
dadaobusi44 分钟前
学习: flit vs tlp
网络·网络协议
paopaokaka_luck1 小时前
剧本杀预约管理系统(AI客服、 webSocket在线沟通、协同过滤算法推荐、Echarts多维分析、 QQ邮箱通知、 腾讯地图导航、四角色协作)
websocket·网络协议·echarts
ZeroNews内网穿透2 小时前
内网穿透公网暴露防护:边缘网关 IP 黑白名单运维实践
运维·网络协议·tcp/ip·内网穿透·api安全·企业网络安全·运维实践
honsor2 小时前
机房动环监控:以太网温湿度传感器选型与部署全解
运维·服务器·网络·物联网·网络协议·tcp/ip
honsor2 小时前
以太网温湿度传感器原理与 Modbus TCP 组网实战,机房动环监控落地
网络·嵌入式硬件·物联网·网络协议·tcp/ip
mingbaiceping3 小时前
复旦-华盛顿大学EMBA:2026年免联考申请条件详解
网络协议·https·ssl
网络小江3 小时前
上网第五十七课:60 天收官(上)——网络技术全景图回顾
网络协议