TeamSpeak简介

TeamSpeak 是全球流行的团队语音通讯工具软件

常用于游戏、会议团队语音沟通,并提供文字聊天、文件共享功能,所有数据加密传输

拥有以下优势:

  • 低延迟

    毫秒级超低延迟,适用于对语音即时通讯有严格要求的团队游戏、远程会议等场合

  • 高品质

    支持多种语音编码格式,包括SPEEX、CELT、OPUS等多种格式;并可设置从1级到10级的语音质量

  • 更保密

    基于不对称加密方式(RSA加密算法),对用户认证、语音传输进行加密,保护用户隐私

  • 权限系统

    自己可以完全控制的用户权限系统,可分组及单独控制用户行为

  • 无广告

    没有任何广告及垃圾邮件

总结下来就是一个轻量、高效、低延迟的语音通讯工具。但是由于没有官方服务器,所以需要使用者自行搭建服务端。因此,相比于其它主流语音工具,TeamSpeak有一点小小的门槛。本次则是基于官方的docker镜像,部署在私有服务器上。

若是不想自行搭建服务端,国内也有第三方服务器提供商,可以即买即用。我了解到的是10人的服务器价格为10RMB/月。

想要使用TeamSpeak最主要的契机是,最近和朋友一起玩游戏时,为了方便我们一直都是使用微信语音。但是可能是网络原因,有时对话会有1~2秒的延迟,给人的感觉就像是在使用纸杯电话交流一样,说一句话之后要等待一会才会有回复。在玩需要即时配合的游戏时体验会很差。(经常是对方都死了好一会这边才听到惨叫)

所以为了更好的游戏体验,就决定动动小手在自己的服务器上部署一个TeamSpeak。

可惜搭建完之后玩游戏的时间越来越少了= =

服务端部署

安装docker

确认服务器已经安装 Docker 和 Docker-Compose

1
2
docker -v
docker-compose -v

如能正常显示版本号,下面这一步直接跳过,否则要手动安装,这里以 CentOS 7 为例安装:

若是其他系统,请自行搜索教程。步骤大差不差

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 安装yum-utils
yum install -y yum-utils

# 配置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装docker-ce
yum install -y docker-ce

# 设置开机启动服务
systemctl enable docker

# 启动服务
systemctl start docker

# 安装epel源
yum install -y epel-release

# 安装docker-compose,如果没有python3会安装python3
yum install -y docker-compose

配置 TeamSpeak

  1. 新建TeamSpeak的工作目录
1
2
mkdir /root/ts  # 创建目录
cd /root/ts # 切换当前目录

直接在root目录创建是个不好的习惯,图方便这样整的,不要学。可以建在根目录下

  1. 在当前目录下创建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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
version: '3.1'
services:
teamspeak:
image: teamspeak:3.13.7
container_name: ts
ports:
- "9987:9987/udp" # 语音服务
- "30033:30033" # 文件传输
# - "41144:41144" # DNS域名解析(可选)
# - "10011:10011" # 服务器查询 raw(可选)
# - 10022:10022 # 服务器查询 SSH(可选)
- "10080:10080" # 网络请求 http(可选)
# - 10443:10443 # 网络请求 https(可选)
volumes:
- ./data:/var/ts3server
environment:
TS3SERVER_DB_PLUGIN: ts3db_mariadb
TS3SERVER_DB_SQLCREATEPATH: create_mariadb
TS3SERVER_DB_HOST: db
TS3SERVER_DB_USER: root
TS3SERVER_DB_PASSWORD: YourPassword
TS3SERVER_DB_NAME: teamspeak
TS3SERVER_DB_WAITUNTILREADY: 30
TS3SERVER_LICENSE: accept
networks:
- team-speak-network
db:
image: mariadb
container_name: ts-db
ports:
- "3308:3306"
environment:
MYSQL_ROOT_PASSWORD: YourPassword
MYSQL_DATABASE: teamspeak
volumes:
- ./mysql:/var/lib/mysql
networks:
- team-speak-network
networks:
team-speak-network:

注意事项

  • 镜像必须指定tag为3.13.7,若为空或者latest则无法使用(因为实际上3.13.7才是最新的,镜像制作者一直没有更新镜像tag)

  • TeamSpeak的端口映射998710080是必须要打开的。其余几个可以根据需求选择

  • 两个服务的volumes(数据卷)一定要配置,不然重启容器后数据会不可逆的丢失

  • TeamSpeak中环境变量里的TS3SERVER_DB_PASSWORD和TS3SERVER_DB_NAME一定要和db中对应

    • TS3SERVER_DB_PLUGINTS3SERVER_DB_SQLCREATEPATH指定了以 MariaDB 作为数据库实现,这也是官方推荐的方案。可以更换为其它服务,官方还支持 PostgreSQL ,但是我没配置成功,有兴趣的话可以自行研究一下。
  • 服务器上要使用 vi/vim/nano 编辑文件,如果没有,CentOS 系统使用 yum install nano 类似的指令安装

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # [新建文件]
    vi docker-compose.yml
    # 或
    vim docker-compose.yml
    # 或
    nano docker-compose.yml

    # [粘贴] ctrl+v 或 ctrl+shift+v 或 shift+insert

    # [保存] vi/vim: ESC :wq Enter

    # [保存] nano: ctrl+x

启动服务

确认当前在 docker-compose.yml 所在的目录,如 cd /data/ts

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 启动服务
docker compose up

# 启动服务 后台运行 detach
docker compose up -d

# 关闭服务
docker compose down

# 重启服务
docker compose restart

# 查看当前运行中容器
docker ps

注意事项:

  • 第一次启动时会弹出 Server Query 管理员账号密码token务必妥善保存
  • 第一次如果用 docker compose up -d 启动没有看到token信息,可以到数据卷挂载的目录下./data/logs 查看相关日志

开放规则

云服务器的防火墙设置页添加如下入站规则:

  • 9987 UDP
  • 30033 TCP
  • 10080 TCP

TeamSpeak官方的端口说明

安装、汉化客户端

客户端下载地址:TeamSpeak 下载

汉化包下载地址:TS3-Translation_zh-CN

安装完客户端后运行汉化包中的文件,即可完成汉化。

具体的客户端配置、使用可参考此视频Teamspeak3完全使用手册(2023) 从安装汉化到服务器搭建!一个视频从零基础到上手