本文介绍 TeamSpeak 服务器端搭建方法 ,TeamSpeak (简称TS) 是一套专有的VoIP软件,使用者可以用耳机和麦克风,通过客户端软件连线到指定的服务器,与在服务器内频道的其他使用者进行通话。是一种很像电话会议的方式。 通常 TeamSpeak 的使用者大多为多人连线游戏的玩家,与同队伍的玩家进行通讯。在游戏的对战方面,语音对话通讯具有竞争优势。
如果您想找一个最快最简单的搭建方法,请参考 使用 Docker 搭建 TeamSpeak 服务器。除此之外的更多情况下,我更推荐按照本文来进行搭建。
请务必从官网下载最新版本服务端,否则可能会出现无法连接至服务器的情况
TeamSpeak 官网 teamspeak.com
准备阶段
本部分以装有 Debian 10 x64 系统为例,其他系统搭建方法类似。
为了保证系统的安全,不要使用 root 账户安装并配置TS服务器
执行一下系统更新操作:
1 2 |
|
新建一个用户
1
|
|
切换至 /opt录下
1
|
|
复制并解压TS服务器端文件
1
|
|
赋予刚刚新建的用户权限,并进入该目录
1
|
|
同意许可条款
1
|
|
您可以选择以下任意一种搭建方式进行搭建,若您不理解这些方式的区别,请直接使用第一种搭建方式,即使用 SQLite 搭建
数据库配置
方式一: 使用 SQLite 搭建
因 TeamSpeak 默认使用 SQLite, 所以直接执行以下操作即可自动配置,并启动服务器
1
|
|
注意保存密钥及 ServerQuery 管理员账户和密码

方法二:使用 MySQL/MariaDB 数据库搭建
- 首先使用 root 登录 MySQL/MariaDB
1
|
|
- 会提示输入密码,输入密码登陆后,创建一个名为 teamspeak 的数据库
数据库名,用户名和密码请自行修改,此处以数据库名
teamspeak_database,用户名teamspeak_user及密码teamspeak_password为例
1
|
|
- 创建一个叫做
teamspeak_user的用户,使用强大的密码并且赋予teamspeak_database数据库权限
由于手机端的流行,我们已经不再使用 utf-8 编码,而改用 utf8mb4 这样我们就可以在 MySQL 数据库里储存 emoji 表情了。你甚至可以尝试使用 emoji 作为用户名或者密码。
1
|
|
这里请将密码
teamspeak_password改成你要设置的强大的没人能猜出来的随机的密码
终端会提示类似 Query OK, 0 rows affected, 1 warning 不用去管它
- 刷新权限,没问题就可以退出结束安装了
1 2 |
|
进行后续步骤前,首先确保您已经安装 MySQL/MariaDB, 且已经创建好数据库
- 创建
ts3server.ini文件,以启用数据库插件
若您已经使用的是 MySQL 数据库, 请将
dbpluginparameter=ts3db_mariadb.ini部分修改为dbpluginparameter=ts3db_mysql.ini
1 2 3 4 5 6 |
|
- 新建
ts3db_mariadb.ini文件并输入如下内容
若您已经使用的是 MySQL 数据库, 请创建
ts3db_mysql.ini, 不要创建ts3db_mariadb.ini文件
1 2 3 4 5 6 |
|
将 数据库名
teamspeak_database,用户名teamspeak_user及密码teamspeak_password部分修改为您自己数据库的信息
- 将 redist 目录下的
libmariadb.so.2文件拷贝至当前目录下
1
|
|
执行以下操作即可启动服务器
1
|
|
注意保存密钥及 ServerQuery 管理员账户和密码
设置自启动
创建并编辑文件 /lib/systemd/system/teamspeak.service
此步骤需要root权限
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
若您是使用 MySQL 或 MariaDB 数据库方式搭建的话,请将
1
|
|
修改为
1
|
|
重新加载 systemd : systemctl daemon-reload
开启自启动(可选): systemctl enable teamspeak.service
启动 TeamSpeak : systemctl start teamspeak.service
停止 TeamSpeak : systemctl stop teamspeak.service
重启 TeamSpeak : systemctl restart teamspeak.service
TSDNS设置方法 (可选)
进入tsdns文件夹中,并创建的 tsdns_settings.ini 文件,
1
|
|
配置的格式为 DOMAIN=IP:PORT,比如:
example.com=1.1.1.1:9987即代表将example.com和其他任何以example.com为后缀的域名,解析到地址为1.1.1.1:9987的ts服务器- 包括 example.com, abc.example.com, abc.def.ghi.example.com …
*.example.com=2.2.2.2:9987即代表将任何以符合*.example.com格式的域名,解析到地址为1.1.1.1:9987的ts服务器- PORT 也可以调用变量, 如
abc.example.com=1.2.3.4:$PORT
*=1.2.3.4:10000在这种情况下,它充当向后兼容机制, 可以对没有使用新 TSDNS 名称进行连接的人,连接至当前服务器.- 比如一名用户连接至
test.example.com:20000,则该用户会被自动转至1.2.3.4:10000的服务器地址
- 比如一名用户连接至
- IPv6 格式为
example.com=[2001:0db8::1]:9987example.com=[2001:0db8::1]:9987 1.1.1.1:9987
域名 SRV 记录添加格式
此处以给 example.com 域名配置 TSDNS 为例, 假如 tsdns 的
| 类别 | 记录值 |
|---|---|
| 名称 | _tsdns._tcp.example.com |
| Priority | 1 |
| Weight | 0 |
| Port | 41144 |
| Address | tsdns.example.com |
此处以 TSDNS 所在服务器地址为 tsdns.example.com 为例,
Address部分请务必填写为域名格式。
| 类别 | 记录值 |
|---|---|
| 名称 | _ts3._udp.example.com |
| Priority | 1 |
| Weight | 0 |
| Port | 9987 |
| Address | teamspeak.example.com |
Port为 TeamSpeak 服务器地址端口,Address为 TeamSpeak 服务器地址
接下载, 运行tsdnsserver程序即可,现在连接到TS服务器,可以看到已经显示成功

可通过此代码来后台运行
1
|
|
添加至开机自启动 (可选)
通过 crontab 来实现开机启动
1
|
|
在文件中添加
1
|
|
关闭编辑器并保存。
接下来,你可以通过 crontab -l 来确认是否添加成功即可。
许可证介绍

2018-09-11 Non-Profit License (NPL) 现在申请接口已经关闭,许可证相关信息也发生了改变
2019-03-23 许可证信息前不久又发生了改变,当前许可证状态
2019-10-06 官方于 2019-05-13[1] 上线了 Sponsorship License,可供游戏俱乐部,教育机构,视频创作者使用,详细说明可在此处查看 https://teamspeak.com/sponsorship/ (Thanks to @xcgjack)
TeamSpeak 端口
TeamSpeak 默认情况下, 服务器端需要下表中的端口[2]
| 端口 | 协议 | 说明 |
|---|---|---|
| 9987 | UDP | 默认语音服务器端口 |
| 10011 | TCP | ServerQuery raw 端口 |
| 10022 | TCP | ServerQuery SSH 端口(需要 3.3.0 以上版本服务端) |
| 10080 | TCP | ServerQuery HTTP 端口(需要 3.12.0 以上版本服务端) |
| 10443 | TCP | ServerQuery HTTPS 端口(需要 3.12.0 以上版本服务端) |
| 30033 | TCP | 文件传输端口 |
| 41144 | TCP | TSDNS |
服务端的所有端口都可自由更改
TeamSpeak 3 服务器还会与下方的地址进行连接[3]
| 域名 | 协议 | 本地端口(服务器) | 远程端口 | 说明 |
|---|---|---|---|---|
| accounting.teamspeak.com | TCP | 1024-65535 | 2008 | 3.0.x 服务端版本 |
| accounting2.teamspeak.com | TCP | 1024-65535 | 443 | 3.1.x 服务端版本 |
| ts3services.teamspeak.com | TCP | 1024-65535 | 443 | 3.1.x 服务端版本 |
| weblist.teamspeak.com | UDP | 2011-2110 | 2010 | 全部服务端版本 |
至此 TeamSpeak 服务器端的搭建方法到此结束。
我们的 TeamSpeak 服务器列表 服务器列表
ServerQuery 相关部分
其实我对于 ServerQuery 的使用也是比较少,这次更新了通过 API 调用 ServerQuery 的方法之后,感觉之后可能我会拿他做一些比较好玩的事情吧,目前对于 HTTP/HTTPS 方式调用的官方说明还是比较少啦,但是官方有表示会写一个完整的 web-query 文档[3],但是以 TeamSpeak 的工作效率来看,怕是要又要咕蛮久的了。
首先,如何启用 http 或者 https query 呢,在之前的版本中 SSH RAW 的方式都是默认启用的,但是这次以我目前的测试来看,默认是关闭的
启用 HTTP / HTTPS ServerQuery
在 ts3server.ini 文件中添加以下内容
启用 HTTP 连接
默认端口为 10080,且默认情况下监听全部端口,可在此处自行修改
1 2 3 |
|
如上所示填写后,会同时启用 raw,ssh,http
启用 HTTPS 连接
默认端口为 10443,且默认情况下监听全部端口,可在此处自行修改
1 2 3 4 5 |
|
此处为仅启用 HTTPS
对于 ts3server.ini 的完整说明我会在日后进行详细说明
Web-Query 调用 示例
1
|
|
1
|
|
1
|
|
1
|
|
参数和可与这些参数一起使用的命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 |
|