诊断

诊断 #

doctor 命令通过运行一系列自动检查来帮助您诊断 TDL 的常见问题。

用法 #

tdl doctor

检查项目 #

诊断命令会执行以下检查:

1. 时间同步 #

检查您的系统时间是否与 NTP 服务器同步。Telegram 需要准确的时间进行身份验证。

  • 测试多个 NTP 服务器,自动故障转移

状态指示:

  • OK: 时间偏移 < 1 秒
  • WARN: 时间偏移 1-10 秒之间(可能正常工作,但建议同步)
  • WARN: 时间偏移 > 10 秒(可能导致认证问题)

2. Telegram 服务器连通性 #

使用无需认证的 API 端点测试与 Telegram 服务器的连接:

  • help.getConfig - 基础服务器配置
  • help.getNearestDc - 最近的数据中心位置
  • langpack.getLanguages - 语言包可用性

这可以验证网络连接和对 Telegram API 的访问。

3. 数据库完整性 #

检查您的本地 TDL 存储:

  • 存储类型和路径
  • 命名空间可用性
  • 会话数据是否存在
  • 应用配置

4. 登录状态 #

验证您的身份验证状态并显示账户信息:

  • 认证状态
  • 账户名称和用户名
  • 用户 ID 和电话号码

自定义 NTP 服务器 #

您可以使用 --ntp 参数指定自定义的 NTP 服务器:

tdl doctor --ntp time.google.com

常见问题 #

时间同步失败 #

如果所有 NTP 服务器都失败,请检查您的网络连接和防火墙设置。NTP 使用 UDP 端口 123。

连通性测试失败 #

如果连通性测试失败:

  1. 检查您的互联网连接
  2. 验证防火墙设置是否允许连接到 Telegram
  3. 如果您所在地区屏蔽了 Telegram,尝试使用代理或 VPN

数据库问题 #

如果数据库检查显示警告:

  • 缺少会话数据意味着您需要登录:tdl login
  • 数据库错误可能需要清理所有本地存储并重新初始化

未授权 #

如果您尚未登录,请先运行登录命令:

tdl login