从报错文字,走到可验证的修复
不要一看到错误就重装。先记录版本、平台、启动方式、完整错误、发生时间和网络类型,再沿“进程 → 本机 → 网络 → 权限 → 数据”逐层排查。每次只改一个变量,修复后用原操作重新验证。
DIAGNOSTIC / v2.2.0
保存现场version / platform / time
检查本机process / port / data
检查连接http / socket / dns
核对权限account / room / policy
复测与收尾retry / verify / redact
先判断问题在哪一层
选择最接近的现象,右侧会给出第一轮三步检查。它不会替代下面的完整说明,但能避免从错误方向开始。
完整错误处理手册
每项都按“先确认 → 再修复 → 最后验证”展开。命令只用于定位,不要删除不认识的进程、数据目录或备份。
启动与运行环境
未找到内置 cloudflared完整版 / vendor / 校验
完整服务器包应包含 vendor/cloudflared.exe。体验版或源码压缩包可能不含该文件。
处理步骤
- 先确认下载文件名属于“完整版”,不要把 GitHub 自动生成的 Source code zip 当安装包。
- 在“服务器设置 → 公网访问”点击修复 cloudflared,让程序从 Cloudflare 官方 Release 下载并校验 SHA-256。
- 杀毒软件隔离过文件时,从 Release 重新下载并核对哈希;不要使用第三方网盘中的替换版。
- 修复后先运行版本检查,再重新开启临时公网地址。
.\vendor\cloudflared.exe --version端口已被占用 / EADDRINUSEprocess / port
通常是旧服务仍在运行,或其他程序已经监听同一端口。
- 关闭所有 SyncWatch 窗口并在任务管理器确认旧进程已退出。
- 用下面命令查找监听 5000 端口的 PID。
- 确认进程身份后关闭它,或在服务器设置改用未占用端口。
- 重启后重新复制局域网地址,旧端口链接不再有效。
netstat -ano | findstr :5000Node.js、npm 或依赖安装失败source / npm ci
源码部署需要 Node.js 22+,推荐 Node.js 24 LTS。普通用户下载 Release 成品不需要单独安装 Node.js。
- 重新打开终端,确认
node与npm都能执行。 - 确认当前目录是仓库根目录并存在
package-lock.json。 - 执行
npm ci,不要把其他 Node 版本生成的node_modules复制进来。 - 依赖成功后执行
npm run test:repo,再启动服务。
node --version && npm --version && npm ci登录、房间与权限
页面能打开但登录失败token / password / room
- 确认页面地址仍指向当前服务器和端口。
- 首次账号为
admin/admin888,登录后必须立即修改。 - 提示令牌过期时退出并重新登录,不要复制旧 Cookie。
- 日志中心检查是密码错误、账号禁用、设备限制还是服务器时间异常。
成员无法加入房间room / firewall / websocket
- 确认房主服务仍运行,房间号大小写和密码完全一致。
- 局域网先检查 Windows 防火墙是否允许当前网络类型。
- 公网连接确认 HTTPS 地址没有过期,WebSocket 没有被代理拦截。
- 管理员查看日志,区分房间不存在、权限拒绝、Origin/Host 拦截或令牌过期。
按钮消失或提示无权限permission / role
按钮可见性来自服务端返回的角色与权限,不是浏览器渲染故障。
- 确认当前登录账号和当前房间。
- 在“成员与权限组”核对权限组、房主状态和临时控制权。
- 保存权限后让成员重新连接并复测。
- 不要修改浏览器脚本绕过按钮,服务端仍会拒绝未授权操作。
上传、媒体与同步
上传卡住或审核后看不到disk / approval / processing
- 检查磁盘剩余空间、单文件大小和上传时长策略。
- 确认上传者有权限,文件仍位于
uploads/。 - 开启审核时需要管理员点击“批准上传”。
- 日志中依次确认 upload、media-processing、approval 事件。
视频黑屏、无声或无法播放codec / ffprobe / ffmpeg
- 先在服务器本机播放原片,排除损坏文件。
- 等待 FFprobe 完成分析,确认视频、音频轨道和时长。
- 浏览器不支持 HEVC 或特殊音轨时,让 FFmpeg 生成兼容版并切换播放源。
- DRM 保护、损坏或无授权内容不能由 SyncWatch 自动修复。
成员不同步或进度反复跳回authority / latency / buffer
- 房主先暂停,等待所有成员连接和缓冲稳定。
- 从当前播放队列重新选择媒体,不要让多人同时拖动。
- 检查浏览器后台节流、设备性能和网络延迟。
- 服务器是权威时钟;确认日志中没有重复房主或频繁重连。
桌面、Android 与公网
Cloudflare 临时地址接口连接超时dns / vpn / 7844
- 先打开
http://127.0.0.1:5000,本机失败时不要继续查 Tunnel。 - 运行“网络诊断与修复”,查看 DNS、系统代理、网卡绑定和 Cloudflare 边缘连接。
- 允许 TCP 443、TCP/UDP 7844 出站;VPN/TUN 使用 Fake-IP 时把 cloudflared 和 Cloudflare 域名设为直连。
- 临时地址仍失败时改用自有 HTTPS 反向代理或稳定 Tunnel,不要反复重启导致日志被覆盖。
Android 手机服务器启动不了apk / foreground / battery
- 确认安装的是包含 Node.js Mobile 的完整 APK。
- 允许通知、前台服务、网络和文件访问权限。
- 检查端口冲突,并把 SyncWatch 电池策略设为“不限制”。
- 锁屏后确认前台服务通知仍存在,再从同一 Wi-Fi 设备访问。
Windows 或 macOS 阻止应用打开hash / gatekeeper / firewall
- 只从本仓库 GitHub Release 下载,并核对 SHA-256。
- Windows 首次运行只允许实际使用的网络类型通过防火墙。
- macOS 在“系统设置 → 隐私与安全性”允许已阻止应用。
- 屏幕共享、麦克风和摄像头权限需按功能单独授权。
邮件、备份与安全收尾
SMTP 测试邮件失败host / tls / auth code
- 按服务商文档填写 SMTP 主机、端口和 TLS。
- QQ 等邮箱使用应用专用授权码,不是网页登录密码。
- 保存后向自己的测试邮箱发送,并查看邮件日志。
- 授权码出现在日志或截图中时立即撤销并重新生成。
恢复后缺少媒体、聊天或密钥scope / data directory
- 先停止服务器并复制当前完整 Data 目录。
- 只导入
config.json不等于完整恢复;选择包含媒体的二进制备份或完整目录。 - 检查
uploads/、secrets/、聊天、缩略图和媒体索引。 - 启动后分别验证登录、房间、媒体和公网配置。
提交 Issue 前必须脱敏:删除真实姓名、私人邮箱、内外网 IP、管理员密码、SMTP 授权码、Tunnel 令牌、房间邀请链接、媒体文件名和聊天内容。安全问题请按仓库 SECURITY.md 私密报告。