群晖上搭建teamspeak3语音服务器

什么是 TeamSpeak ?

TeamSpeak (简称 TS)是一款团队语音通讯工具,但比一般的通讯工具具有更多的功能而且使用方便。它由服务器端程序和客户端程序两部分组成,如果不是想自己架设 TS 服务器,只需下载客户端程序即可。Teamspeak 依靠先进的体系结构,方便灵活的应用功能,特别是领先的多媒体技术,为用户提供了一款强大的网络通讯工具。

安装

建数据库

老苏用了群晖自带的 MariaDB 10 数据库。

phpMyAdmin 中创建名为 teamspeak 的空数据库。

为便于说明,假设数据库密码为 123456

所以根据上面的设置,最后得到的数据库相关的参数如下:

  • 数据库主机:192.168.0.197,与群晖主机 IP 一致;
  • 数据库端口:3307
  • 数据库用户:teamspeak
  • 数据库密码:123456
  • 数据库库名:teamspeak,因为勾选了与用户同名;

安装镜像

在群晖上以 Docker 方式安装。

在注册表中搜索 teamspeak ,选择第一个 teamspeak,版本选择 latest

本文写作时, latest 版本对应为 3.13.7

docker 文件夹中,创建一个新文件夹 teamspeak,并在其中建一个子文件夹 data

文件夹 装载路径 说明
docker/teamspeak/data /var/ts3server 存放设置、日志等

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口 协议
9987 9987 UDP
30033 30033 TCP
10011 10011 TCP

关于 TeamSpeak 3 端口的说明

上图截取自:https://support.teamspeak.com/hc/en-us/articles/360002712257-Which-ports-does-the-TeamSpeak-3-server-use

环境

可变
TS3SERVER_DB_PLUGIN 控制数据库类型,设为 TS3SERVER_DB_WAITUNTILREADY
TS3SERVER_DB_SQLCREATEPATH 用于初始化数据库的 sql 脚本的路径,设为 create_mariadb
TS3SERVER_DB_HOST 数据库主机地址
TS3SERVER_DB_PORT 数据库主机端口
TS3SERVER_DB_USER 数据库用户
TS3SERVER_DB_PASSWORD 数据库密码
TS3SERVER_DB_NAME 数据库库名
TS3SERVER_DB_WAITUNTILREADY 数据库等待时间,设为 30
TS3SERVER_LICENSE 设为 accept

更多的环境变量,请参考官方文档:https://github.com/docker-library/docs/tree/master/teamspeak#environment-variables

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 新建文件夹 teamspeak 和 子目录
mkdir -p /volume1/docker/teamspeak/data

# 进入 teamspeak 目录
cd /volume1/docker/teamspeak

# 运行容器
docker run -d \
--restart always \
--name teamspeak \
-p 9987:9987/udp \
-p 30033:30033 \
-p 10011:10011 \
-v $(pwd)/data:/var/ts3server \
-e TS3SERVER_DB_PLUGIN=ts3db_mariadb \
-e TS3SERVER_DB_SQLCREATEPATH=create_mariadb \
-e TS3SERVER_DB_HOST=192.168.0.197 \
-e TS3SERVER_DB_PORT=3307 \
-e TS3SERVER_DB_USER=teamspeak \
-e TS3SERVER_DB_PASSWORD=123456 \
-e TS3SERVER_DB_NAME=teamspeak \
-e TS3SERVER_DB_WAITUNTILREADY=30 \
-e TS3SERVER_LICENSE=accept \
teamspeak

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
version: '3.1'

services:
teamspeak:
image: teamspeak
container_name: teamspeak
restart: always
ports:
- 9987:9987/udp
- 30033:30033
- 10011:10011
volumes:
- ./data:/var/ts3server
environment:
TS3SERVER_DB_PLUGIN: ts3db_mariadb
TS3SERVER_DB_SQLCREATEPATH: create_mariadb
TS3SERVER_DB_HOST: 192.168.0.197
TS3SERVER_DB_PORT: 3307
TS3SERVER_DB_USER: teamspeak
TS3SERVER_DB_PASSWORD: 123456
TS3SERVER_DB_NAME: teamspeak
TS3SERVER_DB_WAITUNTILREADY: 30
TS3SERVER_LICENSE: accept

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 teamspeak 和 子目录
mkdir -p /volume1/docker/teamspeak/{data,mysql}

# 进入 teamspeak 目录
cd /volume1/docker/teamspeak

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

容器成功启动后,在的日志中,会看到

1
token=bfIo9mvaU+lrhwTDBjj0zI7TfOOwoOGyD9AqD6Z2

往上拉,还会看到管理员账号和密码

1
2
loginname= "serveradmin", password= "ZKowB7sM"
apikey= "BACDrGFPK9fKhyyTC76MjhZW6xpHlKbtPnVvIfN"

客户端

客户端下载地址:https://teamspeak.com/en/downloads/

第一次运行客户端,Nickname 中填serveradminServer Password 中填入 password 的值

Privillege key 中填入 token 值,

这个 token 值是一次性的

连接成功之后

服务器日志中会显示

其他自定义用户连接,不需要填 Server Password

直接连接就可以了,但默认的Server Groups 是不一样的

参考文档

TeamSpeak Systems GmbH
地址:https://github.com/TeamSpeak-Systems

Home | TeamSpeak
地址:https://teamspeak.com/zh-CN/

TeamSpeak - The Future of Online Communication
地址:https://new.teamspeak.com/

TeamSpeak-Systems/ts-services at beta-58rc20
地址:https://github.com/TeamSpeak-Systems/ts-services/tree/beta-58rc20