TS3 状态检测如何工作?
工具服务器先通过 DNS 解析输入的主机名,并检查返回的 IP 是否可公网路由。私有范围(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16、127.0.0.0/8、Link-Local、Loopback)会被一律拒绝。然后建立到 ServerQuery 端口 10011 的 TCP 连接,读取 TS3 banner 并通过协议执行命令 version, use port=<voice> 和 serverinfo进行查询。
随后工具通过短暂的 TCP connect 检测常用端口(语音 9987 是 UDP,不会主动测试,因为 UDP 无法通过 connect 探测可靠验证;测试的端口为 10011、30033 与 10080)。所有 socket 都设置严格超时(ServerQuery 2 秒,每个端口检测 0.8 秒),以保证响应迅速。
ServerQuery、槽位与端口可见性说明
TeamSpeak 3 将语音协议(UDP,默认端口 9987)与管理接口 ServerQuery(TCP,端口 10011)分离。本工具等通过 ServerQuery 读取元数据:槽位、版本、平台、运行时间。要让匿名(无特权)访问能返回数据,默认服务器组必须拥有 b_virtualserver_info_view 权限。许多管理员会有意去除该权限,以防同行或机器人收集槽位统计信息。这种情况下我们会显示"Hidden"。
- 语音:UDP 9987(默认,常自定义)
- ServerQuery(raw):TCP 10011
- ServerQuery(SSH):TCP 10022(如已启用)
- 文件传输:TCP 30033
- WebQuery(HTTP):TCP 10080
- WebQuery(HTTPS):TCP 10443(如已启用)
为什么有些服务器只能部分响应
响应不完整通常有三种原因。第一:防火墙从外部屏蔽了端口 10011,我们因此把服务器误判为"离线"。第二:ServerQuery 可达,但无特权组无法调用 serverinfo 。第三:输入的语音端口在该实例上不存在(多个虚拟服务器共享一个守护进程)。最后这种情况工具会标记为"部分可达"。
Anti-DDoS 服务商、NAT 防火墙和 IPv4 CGNAT 也可能导致 ServerQuery 端口对外不响应而语音端口正常。这种情况只能用语音客户端实测。
隐私与限制
我们不持久存储输入。为执行速率限制(每个 IP 每分钟 20 次),客户端 IP 的哈希会在工具容器中短暂保留并在 60 秒后被覆盖。无追踪、无 Cookie、无第三方脚本,仅有用于防御自动批量查询的 hCaptcha 例外。
工具的局限:不支持 TeamSpeak 5 服务器(新协议)。TeaSpeak 大体兼容,个别字段可能缺失。UDP 语音端口不会主动检测,因为针对 UDP 的 TCP connect 探测没有意义。本工具刻意不支持内部服务器(私有 IP 范围),请使用本地客户端测试。