智能摘要 DeepSeek
本文介绍如何自建TeamSpeak语音服务器,摆脱第三方平台广告与限制。内容涵盖部署选型、硬件要求、Linux服务端安装、客户端连接、权限配置、使用技巧、备份升级及Docker化方案。作者强调其免费32人许可、低延迟与细粒度权限管理,并提供实测排错指南,帮助用户快速搭建稳定、干净的开黑环境。

一句话结论:如果你受够了第三方语音平台的广告、限制和突然的收费化,TeamSpeak 是为数不多可以「一装永逸」的解决方案——本文手把手带你从零部署、配置、运维一套属于自己的语音服务器,全程实测。


为什么要自己搭一个 TeamSpeak?

最近一年,几家主流语音平台要么开始收费、要么上传客户端限制越来越多。对小团体、电竞队友、远程小团队来说,「能开黑、稳定、干净」才是核心需求——而 TeamSpeak 恰好是这种工具的鼻祖:

  • C/S 架构:自己控制服务端,不强制注册任何官方账户
  • 军用级加密(官方说法)的语音通道,延迟极低。
  • 权限模型极细:谁能进哪个频道、改什么、踢谁,精确到单条权限项。
  • 免费许可 32 人:开黑小队绰绰有余,付费仅在扩到 1024+ 时才需要。
  • 全平台客户端:Windows / macOS / Linux / Android / iOS 都有官方客户端。
TeamSpeak 3 自建指南:从开箱到运维的实战记录-缘梦の镇

关于版本:当前生态里使用最多、最稳的还是 TeamSpeak 3 Server(服务端协议稳定至今),客户端则在向 TeamSpeak 6 迁移。本教程以 TS3 服务端 + TS6/TS3 客户端 为主,所有命令均经过实测。


部署前先选型:三种方式速览

在动手前,先决定走哪条路。下面是三种典型路径的对比,按运维成本从低到高排:

TeamSpeak 3 自建指南:从开箱到运维的实战记录-缘梦の镇
  • 官方二进制(推荐):下载 .tar.bz2 解压即跑,systemd 守护、端口最可控。
  • Docker:适合运维熟练的人,升级/备份更省心,但要懂 volume 映射。
  • 官方/云托管:不想折腾的最简方案,缺点是按月付费、节点不一定在国内。

下文走「官方二进制 + Linux」的主路径,Docker 会在最后一节给出 compose 示例。


一、硬件与系统最低要求

项目最低推荐
系统Ubuntu 20.04 / Debian 11 / CentOS 7+ 任一主流发行版Ubuntu 22.04 LTS
CPU任何 x86_64 CPU2 vCPU 起
内存512 MB(空载)1 GB(按虚拟服务器数量增加)
硬盘100 MB1 GB(头像、文件传输会增长)
网络公网 IP,5 Mbps 上行国内中转、BGP 节点更稳

TeamSpeak 对硬件极其友好——一台最便宜的 1C1G VPS 足够撑 32 人的小队。


二、服务端部署(Linux 官方二进制)

2.1 创建专用用户

不要用 root 跑 TeamSpeak——这是一个长期运行的服务,单独账户是最基本的隔离。

useradd -r -m -d /home/teamspeak -s /bin/bash teamspeak

2.2 下载与解压

teamspeak.com/en/downloads/#server 拿到当前最新版的直链(页面右上角的"复制"按钮可直接拿到)。以 3.13.7 为例:

cd /opt
wget https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2
apt install -y bzip2   # 或 yum install -y bzip2
tar -xjvf teamspeak3-server_linux_amd64-3.13.7.tar.bz2
chown -R teamspeak:teamspeak /opt/teamspeak3-server_linux_amd64
cd /opt/teamspeak3-server_linux_amd64

2.3 接受许可协议

启动前必须显式同意许可条款,否则会拒绝启动:

cd /opt/teamspeak3-server_linux_amd64 && sudo -u teamspeak touch .ts3server_license_accepted

2.4 首次启动并保存关键凭据

sudo -u teamspeak ./ts3server_startscript.sh start

启动日志会输出三段必须立刻保存的信息(之后再启动不会再显示):

Server Query Admin Account created
  loginname= "serveradmin", password= "XXXXXXXX"

ServerAdmin privilege key created, please use it to gain
  serveradmin rights for your virtualserver.
  token=YYYYYYYYYYYYY

⚠️ serveradmin 密码token 都请用密码管理器保存。token 是一次性的,丢失意味着你没法用最高权限登录客户端。

2.5 放行端口

TeamSpeak 用到的端口清单(防火墙和安全组都要开):

用途协议端口是否必需
语音UDP9987必需
文件传输TCP30033必需
ServerQuery(明文)TCP10011可选
ServerQuery(SSH)TCP10022可选
WebQuery(HTTP/HTTPS)TCP10080/10443可选
TSDNSTCP41144可选

ufw 为例:

ufw allow 9987/udp
ufw allow 30033/tcp
ufw allow 10011/tcp   # 若要远程 ServerQuery
ufw reload

云厂商安全组规则同上,注意协议类型别选错(语音是 UDP)。

2.6 用 systemd 守护(开机自启)

把脚本用 screen 临时跑只能应急,长期必须用 systemd,否则重启就掉线。

新建 /etc/systemd/system/teamspeak.service

[Unit]
Description=TeamSpeak 3 Server
After=network.target

[Service]
User=teamspeak
Group=teamspeak
Type=forking
WorkingDirectory=/opt/teamspeak3-server_linux_amd64
PIDFile=/opt/teamspeak3-server_linux_amd64/ts3server.pid
ExecStart=/opt/teamspeak3-server_linux_amd64/ts3server_startscript.sh start
ExecStop=/opt/teamspeak3-server_linux_amd64/ts3server_startscript.sh stop
ExecReload=/opt/teamspeak3-server_linux_amd64/ts3server_startscript.sh restart
RestartSec=15
Restart=always
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
# 停掉刚才 screen 启动的实例(如有)
sudo -u teamspeak ./ts3server_startscript.sh stop
systemctl daemon-reload
systemctl enable --now teamspeak
systemctl status teamspeak

看到 active (running) 就稳了。


三、客户端连接与首次登录

3.1 下载客户端

teamspeak.com 选对应平台安装。TS3 客户端长期可用,新装用户也可以直接下 TS6——两者都能连 TS3 服务端。

3.2 汉化(可选但推荐)

下载社区维护的中文翻译包(典型项目:VigorousPro/TS3-Translation_zh-CN),双击 .ts3_translation 文件客户端会自动导入,重启即生效。

TS6 客户端已内置中文,按需选择即可。

3.3 连接服务器

TeamSpeak 3 自建指南:从开箱到运维的实战记录-缘梦の镇
TeamSpeak 3 自建指南:从开箱到运维的实战记录-缘梦の镇
  • 服务器域名或地址:你的 VPS 公网 IP(如 1.2.3.4)或域名(如 ts.example.com)。
  • 昵称:你在服务器里的展示名(建议立刻改成实名/常用 ID)。
  • 服务器密码:留空——首次连接是 guest(访客) 身份,并非管理员。必须用 2.4 保存的 token 在弹窗中激活,账号才会被授予 ServerAdmin 组。

3.4 激活管理员

第一次连接成功会弹出"使用密钥"对话框,粘贴第 2.4 步保存的 token。完成后该账号就是 ServerAdmin,权限最高。

💡 建议:激活后立刻再生成一个 token,把权限转给一个日常使用的账号,自己这个原始账号退出登录。这样万一客户端被盗号也不会丢管理员。


四、权限与频道:TS3 的灵魂

TeamSpeak 的权限管理是它最强大的地方,也是新用户最困惑的地方。我把规则浓缩成一张图,先看图再看细节:

TeamSpeak 3 自建指南:从开箱到运维的实战记录-缘梦の镇

核心规则:TS3 把权限分成 5 层,从底到顶分别是:服务器群组权限 → 对指定客户端的服务器权限 → 对指定客户端的频道权限 → 频道群组权限 → 对指定客户端在指定群组权限。越上层越优先,同一项权限被多层设置时,最终以最高层为准。

4.1 打开高级权限面板

默认面板是简化版,很多权限看不见。以管理员身份连上后
工具 → 选项 → 应用程序 → 勾选 「使用进阶权限系统」 → 确定。

4.2 推荐设置流程(原创实测流)

下面这套流程是我自己多年用下来的"省心配置",适用于 5–50 人的半公开服务器:

  1. 编辑虚拟服务器(右键服务器名):
    • 服务器名称:如 My TeamSpeak #1
    • 设置密码(可选,强烈建议)
    • 人数上限:32(免费许可上限)
    • 预留位置:10(管理员保留席位)
    • 欢迎讯息:进服后底部展示的文字
  2. 默认频道处理(不能改类型,必须是永久频道):
    • 在「基本设定」中把"发言所需权限"设为 75(管理员级别)
    • 在「权限」中把"进入"设为 75,让默认频道变成"过道"
    • 在「频道内容」用红色加粗字写一句"请尽快离开本频道"
  3. 新建 2–3 个公共频道:音质降到 Level 4(行动式),人数上限设为 5–10,避免一个频道被占满导致其他人没地方说话
  4. 新建 1–2 个私密频道:"进入"权限设为 24 左右,让有权限的人能拉人进来。
  5. 分割线:右键服务器 → 新建分割线,把公开和私密频道视觉上隔开。

4.3 常见权限项速查

权限标识含义默认值
i_channel_join_power加入频道所需的最低权限值0
i_channel_needed_join_power进入本频道需要的最低权限值0
i_client_kick_power踢人需要的权限值0
b_channel_modify_password能否改频道密码0
b_client_is_priority_speaker是否优先级发言(无视发言队列)0
i_max_icon_filesize单张图片/图标上限(字节),默认仅 8KB,建议改成 81920

4.4 图标/头像上传过小的解决

开启进阶权限后,服务器群组 → 管理员组 → 搜索 i_max_icon_filesize → 把值末尾加个 0,变 80KB 即可上传更大的频道图标。这是几乎所有新手都会撞到的小坑。


五、客户端高效使用技巧

5.1 推送讲话(Push to Talk)

默认是"语音激活",背景噪音一上来就触发麦。改成按键讲话稳得多:

设置 → 捕获 → 传输模式 → 按键讲话 → 设一个不冲突的快捷键(如 Ctrl + Shift + Space)。

5.2 书签(Bookmark)

每次都手动输入地址很烦:

服务器书签 → 管理书签 → 添加 → 填 IP/域名、昵称、密码(如有)。强烈建议勾选「自动重连」——服务器重启后自动连回去。

5.3 个人音量

每个人说话音量不一样,右键用户 → 变更音量 可以单独调整,不影响别人听到的音量。同样的,"将用户静音"也只对你本地生效。

5.4 全局静音/闭麦

工具栏的 麦克风静音 / 耳机静音只对你自己的快捷操作,不会影响服务器端的权限判定。


六、备份、迁移、升级

6.1 必须备份的文件

TeamSpeak 的核心数据几乎全在一个 SQLite 数据库里:

cp /opt/teamspeak3-server_linux_amd64/ts3server.sqlitedb \
   /backup/ts3server-$(date +%F).sqlitedb

再加 licensekey(如果你购买了非免费许可)和 files/ 目录(头像、文件传输历史)。这三样齐了就足够恢复到全新机器

6.2 升级流程

systemctl stop teamspeak
cd /opt
wget <新版本下载链接>
tar -xjvf teamspeak3-server_linux_amd64-<新版本>.tar.bz2
cp -a teamspeak3-server_linux_amd64/{ts3server.sqlitedb,files,licensekey.dat} \
      teamspeak3-server_linux_amd64-<新版本>/
chown -R teamspeak:teamspeak teamspeak3-server_linux_amd64-<新版本>
# 替换软链,重启
rm /opt/teamspeak3-server_linux_amd64
ln -s /opt/teamspeak3-server_linux_amd64-<新版本> /opt/teamspeak3-server_linux_amd64
systemctl start teamspeak

升级前永远先备份——SQLite 版本不兼容时旧数据库可能打不开。


七、Docker 化(运维省心方案)

如果你更习惯容器化,一份 compose 即可:

# docker-compose.yml
services:
  teamspeak:
    image: teamspeak/teamspeak:latest
    container_name: teamspeak
    restart: unless-stopped
    ports:
      - "9987:9987/udp"
      - "10011:10011"
      - "30033:30033"
    environment:
      TS3SERVER_LICENSE: accept
    volumes:
      - ./data:/data
docker compose up -d
docker compose logs teamspeak   # 找 token

八、常见问题排错

现象排查方向
客户端连不上1) VPS 安全组 UDP 9987 是否放行;2) systemctl status teamspeak 看进程;3) 客户端日志里实际错误
客户端连接成功但进频道没声音设置 → 捕获 → 输入设备 选对了麦;客户端右下角"传输"是否被静音
上传图标失败见第 4.4 节,改 i_max_icon_filesize
忘记管理员密码记得 serveradmin 密码:login serveradmin <密码>use sid=1servergroupaddclient sgid=2 cldbid=<目标账号ID>(把目标账号加进 ServerAdmin 组),或用 tokenadd 生成新 token 重新激活;

彻底忘了:停止服务后操作数据库 / 重命名(备份)ts3server.sqlitedb 重新初始化(会生成新的 serveradmin 密码,但原数据会丢失)。
服务器内存占用异常高检查 files/ 目录——文件传输默认没有清理策略,需要写 cron 清理老文件
TS3 客户端连不上 TS6 朋友TS6 客户端对 TS3 服务端向下兼容;反之 TS3 客户端连 TS6 服务端功能受限于所用客户端——以服务端版本为准

九、写在最后

TeamSpeak 是那种"装好就忘掉"的工具——一套配置能用好几年。我自己开黑用的是一台 1C1G 的小鸡,跑了大半年 CPU 占用从未超过 5%,除了每月看一眼磁盘没做过任何维护。

写这篇博文的初衷,是看到太多教程要么停留在 5 年前的步骤截图,要么抄来抄去连"docker run"都能拼错。希望这份实测版流程能帮你少踩坑,把时间花在真正重要的事上——专心打游戏。