一句话结论:如果你受够了第三方语音平台的广告、限制和突然的收费化,TeamSpeak 是为数不多可以「一装永逸」的解决方案——本文手把手带你从零部署、配置、运维一套属于自己的语音服务器,全程实测。
为什么要自己搭一个 TeamSpeak?
最近一年,几家主流语音平台要么开始收费、要么上传客户端限制越来越多。对小团体、电竞队友、远程小团队来说,「能开黑、稳定、干净」才是核心需求——而 TeamSpeak 恰好是这种工具的鼻祖:
- C/S 架构:自己控制服务端,不强制注册任何官方账户。
- 军用级加密(官方说法)的语音通道,延迟极低。
- 权限模型极细:谁能进哪个频道、改什么、踢谁,精确到单条权限项。
- 免费许可 32 人:开黑小队绰绰有余,付费仅在扩到 1024+ 时才需要。
- 全平台客户端:Windows / macOS / Linux / Android / iOS 都有官方客户端。

关于版本:当前生态里使用最多、最稳的还是 TeamSpeak 3 Server(服务端协议稳定至今),客户端则在向 TeamSpeak 6 迁移。本教程以 TS3 服务端 + TS6/TS3 客户端 为主,所有命令均经过实测。
部署前先选型:三种方式速览
在动手前,先决定走哪条路。下面是三种典型路径的对比,按运维成本从低到高排:

- 官方二进制(推荐):下载 .tar.bz2 解压即跑,systemd 守护、端口最可控。
- Docker:适合运维熟练的人,升级/备份更省心,但要懂 volume 映射。
- 官方/云托管:不想折腾的最简方案,缺点是按月付费、节点不一定在国内。
下文走「官方二进制 + Linux」的主路径,Docker 会在最后一节给出 compose 示例。
一、硬件与系统最低要求
| 项目 | 最低 | 推荐 |
|---|---|---|
| 系统 | Ubuntu 20.04 / Debian 11 / CentOS 7+ 任一主流发行版 | Ubuntu 22.04 LTS |
| CPU | 任何 x86_64 CPU | 2 vCPU 起 |
| 内存 | 512 MB(空载) | 1 GB(按虚拟服务器数量增加) |
| 硬盘 | 100 MB | 1 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 用到的端口清单(防火墙和安全组都要开):
| 用途 | 协议 | 端口 | 是否必需 |
|---|---|---|---|
| 语音 | UDP | 9987 | 必需 |
| 文件传输 | TCP | 30033 | 必需 |
| ServerQuery(明文) | TCP | 10011 | 可选 |
| ServerQuery(SSH) | TCP | 10022 | 可选 |
| WebQuery(HTTP/HTTPS) | TCP | 10080/10443 | 可选 |
| TSDNS | TCP | 41144 | 可选 |
以 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 连接服务器


- 服务器域名或地址:你的 VPS 公网 IP(如
1.2.3.4)或域名(如ts.example.com)。 - 昵称:你在服务器里的展示名(建议立刻改成实名/常用 ID)。
- 服务器密码:留空——首次连接是 guest(访客) 身份,并非管理员。必须用 2.4 保存的 token 在弹窗中激活,账号才会被授予 ServerAdmin 组。
3.4 激活管理员
第一次连接成功会弹出"使用密钥"对话框,粘贴第 2.4 步保存的 token。完成后该账号就是 ServerAdmin,权限最高。
💡 建议:激活后立刻再生成一个 token,把权限转给一个日常使用的账号,自己这个原始账号退出登录。这样万一客户端被盗号也不会丢管理员。
四、权限与频道:TS3 的灵魂
TeamSpeak 的权限管理是它最强大的地方,也是新用户最困惑的地方。我把规则浓缩成一张图,先看图再看细节:

核心规则:TS3 把权限分成 5 层,从底到顶分别是:服务器群组权限 → 对指定客户端的服务器权限 → 对指定客户端的频道权限 → 频道群组权限 → 对指定客户端在指定群组权限。越上层越优先,同一项权限被多层设置时,最终以最高层为准。
4.1 打开高级权限面板
默认面板是简化版,很多权限看不见。以管理员身份连上后:工具 → 选项 → 应用程序 → 勾选 「使用进阶权限系统」 → 确定。
4.2 推荐设置流程(原创实测流)
下面这套流程是我自己多年用下来的"省心配置",适用于 5–50 人的半公开服务器:
- 编辑虚拟服务器(右键服务器名):
- 服务器名称:如
My TeamSpeak #1 - 设置密码(可选,强烈建议)
- 人数上限:32(免费许可上限)
- 预留位置:10(管理员保留席位)
- 欢迎讯息:进服后底部展示的文字
- 服务器名称:如
- 默认频道处理(不能改类型,必须是永久频道):
- 在「基本设定」中把"发言所需权限"设为
75(管理员级别) - 在「权限」中把"进入"设为
75,让默认频道变成"过道" - 在「频道内容」用红色加粗字写一句"请尽快离开本频道"
- 在「基本设定」中把"发言所需权限"设为
- 新建 2–3 个公共频道:音质降到 Level 4(行动式),人数上限设为 5–10,避免一个频道被占满导致其他人没地方说话。
- 新建 1–2 个私密频道:"进入"权限设为 24 左右,让有权限的人能拉人进来。
- 分割线:右键服务器 → 新建分割线,把公开和私密频道视觉上隔开。
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=1 → servergroupaddclient 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"都能拼错。希望这份实测版流程能帮你少踩坑,把时间花在真正重要的事上——专心打游戏。