这是什么
TeamSpeak 是一款自托管的低延迟语音聊天服务器,专为需要清晰的一键通(push-to-talk)语音和持久化频道的游戏战队、社区和团队而打造。官方 TeamSpeak 3 服务器以单一容器形式发布,可在配置一般的 VPS 上运行,仅占用极少的 CPU 和内存,即可为数十名用户提供服务。
为何选择离岸托管
语音服务器会记录谁在何时与谁通话,因此在无需 KYC、支持加密货币付款的 VPS 上自行搭建,就不会有任何账号身份、电话号码或支付记录与你的社区关联。ChainVPS 的不限流量带宽和内置 DDoS 防护在这里尤为重要,因为 UDP 语音服务经常成为流量攻击的目标,而语音流量又是持续不断的。
部署过程
一套可用的参考配置
将其复制到全新的 ChainVPS 实例中。替换占位符后即可启动。
# docker-compose.yml — TeamSpeak 3 server (official image, SQLite backend)
# Deploy: docker compose up -d
# Then grab the one-time admin token:
# docker compose logs teamspeak | grep -i token
# Paste that token into your TeamSpeak client on first connect to become ServerAdmin.
services:
teamspeak:
image: teamspeak:3
container_name: teamspeak
restart: unless-stopped
environment:
TS3SERVER_LICENSE: accept
ports:
- "9987:9987/udp" # voice (required, public)
- "30033:30033/tcp" # file transfer: avatars/icons (optional)
- "10011:10011/tcp" # ServerQuery admin (KEEP PRIVATE — see hardening)
volumes:
- ts3data:/var/ts3server/
volumes:
ts3data:
防火墙
需开放的端口
| 端口 | 协议 | 用途 |
|---|---|---|
| 9987 | UDP | 语音传输 — 客户端唯一需要的端口,必须对外公开。 |
| 30033 | TCP | 用于头像及频道/组图标的文件传输;为可选项,如不使用可关闭。 |
| 10011 | TCP | ServerQuery(原始协议)管理/自动化接口;切勿对外公开。 |
| 10022 | TCP | 基于 SSH 的 ServerQuery(较新版本服务器);请保持防火墙隔离/仅限本地访问。 |
按需调配规格
您需要哪种套餐
VPS Nano / Small (1 vCPU, 1-2 GB RAM)
TeamSpeak 非常轻量;单个满载 32 席位的虚拟服务器几乎不占用 CPU。请根据所在地区/延迟而非性能来选择套餐。
VPS Small / Pro (1-2 vCPU, 2-4 GB RAM)
为文件传输、机器人(如用于音乐播放的 SinusBot)以及与语音同时运行的 ServerQuery 接口预留余量。
VPS Pro (2-4 vCPU, 4-8 GB RAM)
瓶颈在于网络而非算力 — ChainVPS 的不限流量带宽正是承载大量并发语音流的关键。单个实例若要突破 32 席位上限,需要 TeamSpeak 授权许可。
最佳地区: 语音对延迟十分敏感,因此请选择离你的成员最近的隐私层级机房:NL 和 LU 位于欧洲连接最佳的骨干网络之上,能为大多数欧盟社区带来低于 30 毫秒的延迟;CH 以略高的延迟为代价提供更强的法律隐私保障;RO/MD 则很好地覆盖东欧地区。IS 是个例外 — 隐私立场极为强硬,但延迟较高,只有在司法管辖比多几毫秒延迟更重要时才建议选用。
全面加固安全
安全加固清单
- 首次启动时从容器日志中获取 ServerAdmin 令牌(docker compose logs teamspeak | grep -i token),立即在客户端中认领该身份,并将其保存到密码管理器中 — 这是一个一次性密钥,没有内置的找回机制。
- 切勿将 ServerQuery(10011/10022)暴露在公网上。使用 UFW 将其限制为仅本地或你自己的 IP 可访问(ufw allow 9987/udp,然后默认拒绝其余端口);ServerQuery 暴力破解是 TeamSpeak 服务器被接管的最常见方式。
- 设置一个强度足够的 query_admin 密码,并使用数据卷中的 query_ip_allowlist.txt / query_ip_denylist.txt 文件来限制谁能够访问查询接口。
- 善用 ChainVPS 内置的 DDoS 防护和不限流量带宽 — 公开的 9987/udp 端口是反射/洪水攻击的常见目标,而语音数据包又是持续不断的,因此按流量计费的套餐在这里并不适用。
- 定期备份 SQLite 数据库:它以 ts3server.sqlitedb 的形式存放在 ts3data 数据卷中,保存着所有频道、权限和封禁记录 — 请按计划任务(cron)定期为该数据卷创建快照或复制该文件。
- 将镜像固定到具体的版本标签(例如 teamspeak:3.13.7),而不是使用 :latest,以确保重启时的可复现性;只有在你想要更新时才主动重新构建,而不是每次拉取镜像都更新。
问题
主机服务 TeamSpeak — 常见问题
自托管是否需要付费的 TeamSpeak 许可证?
不需要。未授权的 TeamSpeak 3 服务器可免费支持最多 32 个席位和一个虚拟服务器,足以满足大多数战队和小型社区的需求。只有当你需要更多席位,或在一个实例上运行多个虚拟服务器时,才需要(付费或免费层级的)TeamSpeak 授权许可。
一台 VPS 能承载多少人?
算力几乎从不是瓶颈 — 即使是 Nano 级别的 VPS 也能轻松运行一个满载 32 席位的服务器。真正的限制在于带宽,这也是不限流量套餐如此重要的原因。规模更大、拥有授权且有数百人同时通话的部署对 CPU 的占用依然很低,但需要 VPS Pro 加上不限流量带宽所提供的网络容量。
为什么选择离岸而不是租用 TeamSpeak 主机?
租用的语音主机会将你的社区与某个账号和支付身份绑定,并可能记录或交出连接的元数据。而无需 KYC、支持加密货币付款的 VPS 可以让你运行完全相同的官方服务器软件,却不绑定任何身份,并对日志、封禁和数据拥有完整的 root 控制权。
我的成员实际上只需要开放哪个端口?
只需要 9987/udp。这一个 UDP 端口即可承载所有语音流量。文件传输(30033)是可选的,ServerQuery(10011)应保持私密,因此成员无需连接到这些端口。
TeamSpeak 6 呢?
TeamSpeak 6 的服务器镜像已经存在且更新,但 TeamSpeak 3 仍然是稳定、久经考验的自托管标准,拥有最广泛的客户端和机器人支持。本指南使用的是 TS3;如果你之后切换到 TS6 镜像,同样的 VPS 规格选择和加固建议依然适用。