搭建 Teamspeak 服务器与 TS3AudioBot 音乐机器人

简单记录一下 Teamspeak 服务器与 TS3AudioBot 音乐机器人的部署过程。

在那之前

服务器信息

这是一台部署于阿里云的 Alibaba Cloud Linux 3.21.04 的服务器,配置为 2 核 / 2G / 3M 带宽 / 50G 硬盘

端口开放

Teamspeak 服务器占用以下几个端口,按需在安全组-防火墙添加放行规则

Service Protocol Local Port (Server) Required?
Voice UDP 9987 Yes
Filetransfer TCP 30033 Yes
ServerQuery TCP 10011 Optional
ServerQuery SSH 10022 Optional
WebQuery HTTP 10080 Optional
WebQuery HTTPS 10443 Optional
TSDNS TCP 41144 Optional

* Which ports does the Teamspeak 3 server use? - Teamspeak

其中,Voice 和 Filetransfer 是必须的,其余端口根据需求添加。

创建用户

创建一个用于运行 Teamspeak 服务的用户,并切换至该用户。

1
2
3
4
useradd -m teamspeak # 创建用户
passwd teamspeak # 设置密码
usermod -aG sudo teamspeak # 添加 sudo 权限(可选)
su - teamspeak # 切换用户

接下来,我们将在创建好的 teamspeak 用户与 /home/teamspeak/ 目录下进行操作。

安装 FFmpeg

TS3AudioBot 音乐机器人需要 FFmpeg 来处理音频文件,Aliba Cloud Linux 3.21.04 默认没有安装 ffmpeg,需要手动安装。

John Van Sickle - FFmpeg Static Builds 下载对应系统的静态编译版本,并解压。

1
2
wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
tar -xvf ffmpeg-release-amd64-static.tar.xz

将解压后的 ffmpeg 文件移动至 /data/software/ 目录下,并创建软链接。

1
2
3
mv ffmpeg-7.0.2-amd64-static/ /data/software/
ln -s /data/software/ffmpeg-7.0.2-amd64-static/ffmpeg /usr/local/bin/ffmpeg
ln -s /data/software/ffmpeg-7.0.2-amd64-static/ffprobe /usr/local/bin/ffprobe

至此,FFmpeg 安装完成。

解决 Couldn’t find a valid ICU package 问题

在启动 TS3AudioBot 时,可能会遇到 Couldn't find a valid ICU package 的错误,这是因为 TS3AudioBot 需要依赖 ICU 库。

20240827180913

此处以 debain 系统为例,安装 libicu-dev

1
sudo apt-get install libicu-dev

安装完成后,重新启动 TS3AudioBot 即可。

搭建 Teamspeak 3 服务器

  1. 前往 Teamspeak 下载 | Teamspeak 查看最新版本,并下载对应的服务器版本。

    20240826165200

  2. 使用 wget 命令下载 Teamspeak 服务器。

    1
    wget https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2
  3. 解压下载的文件。

    1
    tar -xjf teamspeak3-server_linux_amd64-3.13.7.tar.bz2
  4. 同意许可条款

    1
    touch .ts3server_license_accepted
  5. 启动 Teamspeak 服务器

    1
    ./ts3server_startscript.sh start

在启动之后,将输出 Server Query Admin 账户与 ServerAdmin token,请按需记录。

20240826173438

使用客户端进入服务器后,将会弹出 “使用权限密钥” 弹窗,输入 ServerAdmin token 即可。

不小心关闭弹窗也没关系,在 工具栏——权限——使用权限密钥 中也可以找到

20240826182423

搭建 TS3AudioBot 音乐机器人

TS3AudioBot 的 WebUI 默认使用 58913 端口,需要前往 安全组-防火墙 添加放行规则。

如果做了域名解析,但域名未备案,访问时需要直接访问 IP:58913,否则会被阿里云拦截。

安装

  1. 安装依赖

    • Ubuntu/Debian

      1
      sudo apt-get install libopus-dev ffmpeg
    • Arch Linux

      1
      sudo pacman -S ffmpeg opus
    • CentOS/Aliba Cloud Linux

      1
      2
      sudo yum install epel-release
      sudo yum install opus-devel
  2. 前往 TS3AudioBot 查看最新版本,并下载对应的版本。

    1
    2
    3
    4
    # 创建 TS3AudioBot 目录,接下来的操作将在该目录下进行
    mkdir TS3AudioBot
    cd TS3AudioBot
    wget -O TS3AudioBot.tar.gz https://splamy.de/api/nightly/projects/ts3ab/develop_linux_x64/download
  3. 解压下载的文件。

    1
    2
    3
    tar -xzf TS3AudioBot.tar.gz
    # 删除压缩包
    rm TS3AudioBot.tar.gz

首次启动 TS3AudioBot

  1. 启动 TS3AudioBot。

    1
    ./TS3AudioBot

    20240828000343

  2. 确认后输入 serveradmin 或你的 Teamspeak uid

    20240828000648

  3. 输入你的 Teamspeak 服务器地址

    20240828001357

  4. 输入服务器密码(没有密码留空)

此时会有一个名为 TS3AudioBot 的 Bot 进入你的频道

TS3AudioBot WebUI

如何登录?

双击私聊 Bot,输入 !api token ,即可获取 WebUI 的登录 token

20240828002352

WebUI 的地址为 http://<TSAudioBot所在服务器的IP>:58913

访问 WebUI 后,在 Login input 内输入刚刚获取到的 token 即可

20240828002416

管理 Bot

点击主页的 Jump to your Bots overview 或菜单栏的 Bots 即可编辑机器人

20240828002522

写在最后

节省带宽

如果你的 Teamspeak 服务器与 TSAudioBot 搭建在同一台机器上,你可以通过将 Bot 连接的服务器地址设置为 localhost 以节省公网带宽

一键进服

浏览器访问 ts3server://<你的Teamspeak服务器地址> 即可一键进入服务器

文章开始的图片就有这个功能,不妨去试试?