群晖上搭建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 | 存放设置、日志等 |

端口
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用
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 更快捷
# 新建文件夹 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 文件
version: '3.1'services:teamspeak:image: teamspeakcontainer_name: teamspeakrestart: alwaysports:- 9987:9987/udp- 30033:30033- 10011:10011volumes:- ./data:/var/ts3serverenvironment:TS3SERVER_DB_PLUGIN: ts3db_mariadbTS3SERVER_DB_SQLCREATEPATH: create_mariadbTS3SERVER_DB_HOST: 192.168.0.197TS3SERVER_DB_PORT: 3307TS3SERVER_DB_USER: teamspeakTS3SERVER_DB_PASSWORD: 123456TS3SERVER_DB_NAME: teamspeakTS3SERVER_DB_WAITUNTILREADY: 30TS3SERVER_LICENSE: accept
然后执行下面的命令
# 新建文件夹 teamspeak 和 子目录
mkdir -p /volume1/docker/teamspeak/{data,mysql}# 进入 teamspeak 目录
cd /volume1/docker/teamspeak# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d
运行
容器成功启动后,在的日志中,会看到
token=bfIo9mvaU+lrhwTDBjj0zI7TfOOwoOGyD9AqD6Z2

往上拉,还会看到管理员账号和密码
loginname= "serveradmin", password= "ZKowB7sM"
apikey= "BACDrGFPK9fKhyyTC76MjhZW6xpHlKbtPnVvIfN"

客户端
客户端下载地址:https://teamspeak.com/en/downloads/
第一次运行客户端,Nickname 中填serveradmin,Server 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
相关文章:
群晖上搭建teamspeak3语音服务器
什么是 TeamSpeak ? TeamSpeak (简称 TS)是一款团队语音通讯工具,但比一般的通讯工具具有更多的功能而且使用方便。它由服务器端程序和客户端程序两部分组成,如果不是想自己架设 TS 服务器,只需下载客户端程…...
Python爬虫(二十四)_selenium案例:执行javascript脚本
本章叫介绍如何使用selenium在浏览器中使用js脚本,更多内容请参考:Python学习指南 隐藏百度图片 #-*- coding:utf-8 -*- #本篇将模拟执行javascript语句from selenium import webdriver from selenium.webdriver.common.keys import Keysdriver webdri…...
Devops团队
DevOps(Development 和 Operations的缩写)是一种软件开发和运维(IT运营)之间协作和沟通的文化、原则和实践。DevOps团队是专注于实施DevOps原则的团队,旨在促进软件开发和运维之间的紧密协作,以加速软件交付…...
力扣labuladong——一刷day10
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣76. 最小覆盖子串二、力扣567. 字符串的排列三、力扣438. 找到字符串中所有字母异位词四、力扣3. 无重复字符的最长子串 前言 一、力扣76. 最小覆盖子串…...
https下载图片
OpenSSL用法示例 OpenSSL源码安装 对于ubuntu,懒得编译源码可以直接安装 sudo apt-get install libssl–dev /usr/include/openssl/ssl.h CMakeLists中添加 link_libraries(ssl crypto) apt-get安装不需要再制定libssl.a, libcrypto.a的路径了, 就像用libc标…...
二叉树的后续遍历(迭代法)
迭代法实现二叉树的后续遍历 1、递归版本 public static void dfs(TreeNode root){if(rootnull){return;}if(root.left!null)dfs(root.left);if(root.right!null)dfs(root.right);System.out.println(root.val); }从递归版本可以看出我们第一步需要遍历完所有的左节点 这里我…...
CVE-2021-41773/42013 apache路径穿越漏洞
影响范围 CVE-2021-41773 Apache HTTP server 2.4.49 CVE-2021-42013 Apache HTTP server 2.4.49/2.4.50 漏洞原理 Apache HTTP Server 2.4.49版本使用的ap_normalize_path函数在对路径参数进行规范化时会先进行url解码,然后判断是否存在…/的路径穿越符…...
前端性能测试工具WebPagetest
简介:一款web性能在线性能评测工具,可测试有关页面在各种条件下的性能,并且提供深入诊断信息。 WebPagetest 的主页:https://www.webpagetest.org/,也就是工具的使用界面。 注意:WebPageTest 并不是完全免…...
易语言软件定制软件开发脚本开发协议软件电脑网站APP应用视频制作工程制作
随着信息技术的不断发展,易语言软件定制开发已成为许多公司的一项重要业务。本文将探讨如何利用易语言承接软件定制软件开发脚本开发协议软件电脑网站APP应用视频制作工程制作。 一、易语言概述 易语言是一种简单易学的编程语言,它采用中文编程ÿ…...
Windows上配置IP端口转发
在通常涉及到使用网络地址转换(NAT)规则,可以使用一些工具和命令行选项来实现。以下是在Windows上配置端口转发的一般步骤: **注意:端口转发需要管理员权限,因此请确保以管理员身份运行命令行工具。** 1.…...
韦东山D1S板子——汇编启动代码第一行分析(.long 0x0300006f)
1、汇编启动源码 2、分析二进制:0x0300006f 2.1、反汇编代码 2.2、jal指令 jal指令的作用:跳转到当前PC值偏移offset处执行,其中offset由jal指令的bi[31:12]表示; 2.3、分析指令:j 20030 <reset> j 20030 //伪…...
了解单域名证书和通配符证书的区别,选择合适的SSL证书解决方案
随着互联网的不断发展,网站安全性问题一直备受关注,在保护网站数据安全的过程中,SSL证书一直发挥着至关重要的作用。而在选择SSL证书时,单域名证书和通配符证书是两种常见的选择。本文将详细介绍单域名证书和通配符证书的区别&…...
【LeetCode】7. 整数反转
题目链接 文章目录 Python3官方解法 ⟮ O ( ∣ x ∣ ) 、 O ( 1 ) ⟯ \lgroup O(|x|)、O(1)\rgroup ⟮O(∣x∣)、O(1)⟯写法2写法3 C官方解法 ⟮ O ( ∣ x ∣ ) 、 O ( 1 ) ⟯ \lgroup O(|x|)、O(1)\rgroup ⟮O(∣x∣)、O(1)⟯ Python3 官方解法 ⟮ O ( ∣ x ∣ ) 、 O ( 1…...
防止请求重复提交:注解+拦截器的实现方案
文章目录 了解请求重复提交解决思路具体实现 了解请求重复提交 请求重复提交是指用户在一次请求还未处理完成时,重复提交了相同的请求。这种情况通常发生在网络延迟、用户误操作或系统性能不佳等情况下。 请求重复提交可能会导致以下问题和影响: 数据不…...
C#使用mysql-connector-net驱动连接mariadb报错
给树莓派用最新的官方OS重刷了一下,并且用apt install mariadb-server装上“mysql”作为我的测试服务器。然后神奇的事情发生了,之前用得好好的程序突然就报错了,经过排查,发现在连接数据库的Open阶段就报错了。写了个最单纯的Con…...
SpringBoot 定时任务:@EnableScheduling @Scheduled
Scheduled注解参数 cron参数 这个参数是最经常使用的参数,表示接收一个cron参数,cron它是一个表达式,最多接收7个参数,从左到右分别表示:秒 分 时 天 月 周 年;参数以空格隔开,其中年不是必须参…...
Jquery 如何获取子元素。如何找到所有 HTML select 标签的选中项。jQuery 里的 ID 选择器和 class 选择器有何不同
可以使用 jQuery 的子选择器(Child Selector)或 find() 方法来获取子元素。 子选择器(Child Selector): 使用父元素的选择器和 > 符号来选取该父元素的子元素。 例如:选取 id 为 parent 的元素内所有 cl…...
Python Selenium 之数据驱动测试的实现!
数据驱动模式的测试好处相比普通模式的测试就显而易见了吧!使用数据驱动的模式,可以根据业务分解测试数据,只需定义变量,使用外部或者自定义的数据使其参数化,从而避免了使用之前测试脚本中固定的数据。可以将测试脚本…...
【Proteus仿真】【STM32单片机】智能语音家居陪护机器人
文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器,使用OLED显示模块、红外传感器、蜂鸣器、DS18B20温度传感器,风扇LED、语音识别模块等。 主要功能: 系统运行后,…...
C#上位机序列10: 批量读写+点对点更新+数据类型处理
一、源码结构 二、运行效果 三、源码解析 PLC批量读写点对点更新数据类型处理 优点:根据数据类型,判定监听的地址范围(40120_int 监听两个word:40120 40121;40130_long 监听四个word:40130 40131 40132 4…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...
鸿蒙(HarmonyOS5)实现跳一跳小游戏
下面我将介绍如何使用鸿蒙的ArkUI框架,实现一个简单的跳一跳小游戏。 1. 项目结构 src/main/ets/ ├── MainAbility │ ├── pages │ │ ├── Index.ets // 主页面 │ │ └── GamePage.ets // 游戏页面 │ └── model │ …...
