uVersion
简体中文
下载 →

Wiki

故障排除

常见问题的解决方法:服务无法启动、激活码被拒绝、PostgreSQL、TLS。

服务无法启动

Linux:systemctl start 失败
sudo journalctl -u uversion-server -n 100 --no-pager

常见原因:

  • PostgreSQL 未运行: sudo systemctl status postgresql
  • 丢失数据库密码: postinst 会使用 --reconfigure 重新生成配置 (sudo dpkg-reconfigure uversion-server)
  • 端口 8443 被占用:请参阅下方的专门章节
Windows:错误 1053 或 1067

服务启动后立即停止。请检查事件查看器:

Get-EventLog -LogName Application -Source uVersionServer -Newest 50

常见原因:

  • 缺少 CONFIG_PATH 环境变量: 通常由安装程序在 HKLM\SYSTEM\CurrentControlSet\Services\uVersionServer\Environment 中设置
  • PostgreSQL 未运行: Get-Service postgresql*

激活码被拒绝

  • 请确认该激活码未在其他机器上使用过 (每个激活码都与首次安装的 server-ID 绑定)。请从您的 账户页面申请新的激活码。
  • 检查到 licence.uversion.io 的连接: curl -I https://licence.uversion.io/api/v1/health
  • 如果您想在卸载后在新机器上重复使用某个激活码, 请联系支持团队以释放之前的 server-ID。

无法连接 PostgreSQL

uVersion 服务无法连接到数据库。手动测试:

# Linux
sudo -u postgres psql -c "SELECT 1;"

# Windows
& "C:\Program Files\PostgreSQL\16\bin\psql.exe" -U postgres -h 127.0.0.1 -c "SELECT 1;"

如果 PostgreSQL 已安装但超级用户密码丢失, uVersion 安装程序(Linux 的 postinst 以及 Windows 的 install.ps1)可以 自动将 PostgreSQL 恢复为 trust 模式、重置密码,然后 恢复原始配置。请重新运行:

# Linux
sudo dpkg-reconfigure uversion-server

# Windows
iwr https://uversion.io/downloads/server/install.ps1 -UseBasicParsing | iex
# (re-passe par le script avec -Reconfigure)

端口 8443 已被占用

uVersion 默认在 8443 上监听 HTTPS(并保持 8080 作为 HTTP 回退开放)。如果其中一个被占用:

# Linux
sudo ss -tlnp | grep -E '8443|8080'

# Windows
Get-NetTCPConnection -LocalPort 8443 | Select-Object OwningProcess, State
Get-Process -Id <PID>

要更改 TLS 端口,请编辑 config.toml

[tls]
https_port = 9443

然后重启服务。

客户端拒绝 TLS 连接

uVersion 使用在客户端通过 TOFU 锁定的自签名证书(参见 TLS 指纹)。 最常见的原因:

  • 首次连接未确认:桌面客户端会显示一个包含指纹的 对话框。请将其与管理员分享给您的值进行比较。 在 CLI 中,运行 uversion trust <url>
  • 指纹已更改(红色警告):服务器已重新安装并 重新生成了证书。请与管理员通过 out-of-band 方式确认,然后:
    • 桌面端:在红色对话框中点击 Trust new fingerprint
    • CLI:uversion mistrust <url> 然后 uversion login <url>
  • 服务器未提供 HTTPS:请检查它是否确实在 8443(而非 8080)上监听:
    # Linux
    ss -tlnp | grep 8443
    # Windows
    Get-NetTCPConnection -LocalPort 8443 -State Listen
    如果没有任何监听,请检查 config.toml 中的 [tls] disabled = false(这是默认值)。
  • 在服务器端重新显示指纹
    # Linux
    sudo cat /var/lib/uversion/data/tls/fingerprint
    # Windows
    Get-Content "C:\ProgramData\uVersion\data\tls\fingerprint"

完全重置

要从干净的安装重新开始,请参阅Ubuntu/Debian 卸载Windows 卸载 页面。