如何在 Debian 11 上安装 TeamSpeak 服务器
在此页
- 先决条件
- 第 1 步 - 配置防火墙
- 第 2 步 - 下载 TeamSpeak
- 第 3 步 - 创建 TeamSpeak 用户和目录
- 第 4 步 - 运行 TeamSpeak 服务器
- 第 5 步 - 创建 TeamSpeak 服务守护进程
- 第 6 步 - 使用 TeamSpeak 客户端连接
- 第 7 步 - 更改访问密码
- 第 8 步 - 安装和配置 MySQL
- 第 9 步 - 升级 TeamSpeak
- 结论
TeamSpeak 是游戏玩家、团队和学校使用的跨平台语音聊天软件。它重量轻且速度快,并且可以将其托管在您的服务器上,因此可以为您提供更多控制。它提供了一种安全且简单的方式来与全球各地的人们联系。它具有完全可定制的用户界面,支持直接消息传递、无限制文件传输并允许匿名使用。
本教程将教您如何在基于 Debian 11 的服务器上安装 TeamSpeak 服务器并使用 Windows 客户端连接到它。
先决条件
-
A Debian 11 based server.
-
A non-root user with sudo privileges.
-
Sudo package is installed.
-
Everything is updated.
$ sudo apt update && sudo apt upgrade
-
Few packages that your system needs.
$ sudo apt install nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release debian-archive-keyring wget -y
Some of these packages may already be installed on your system.
第 1 步 - 配置防火墙
第一步是配置防火墙。 Debian 带有 ufw(简单防火墙)。
检查防火墙是否正在运行。
$ sudo ufw status
您应该得到以下输出。
Status: inactive
允许 SSH 端口,以便防火墙在启用时不会中断当前连接。
$ sudo ufw allow OpenSSH
打开 TeamSpeak 所需的以下端口。
- 9987/udp 语音。
- 30033/tcp 用于文件传输。
- 10011/tcp 用于服务器查询(原始)。
- 10022/tcp 用于服务器查询 (SSH)。
- 10080/tcp 网络查询 (HTTP)。
$ sudo ufw allow 9987/udp
$ sudo ufw allow 30033/tcp
$ sudo ufw allow 10011/tcp
$ sudo ufw allow 10022/tcp
$ sudo ufw allow 10080/tcp
启用防火墙
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
再次检查防火墙的状态。
$ sudo ufw status
您应该会看到类似的输出。
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
9987/udp ALLOW Anywhere
30033/tcp ALLOW Anywhere
10011/tcp ALLOW Anywhere
10080/tcp ALLOW Anywhere
10022/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
9987/udp (v6) ALLOW Anywhere (v6)
30033/tcp (v6) ALLOW Anywhere (v6)
10011/tcp (v6) ALLOW Anywhere (v6)
10080/tcp (v6) ALLOW Anywhere (v6)
10022/tcp (v6) ALLOW Anywhere (v6)
第 2 步 - 下载 TeamSpeak
访问 TeamSpeaks 下载页面并注意最新版本号。在编写本教程时,v3.13.6 是可用的 TeamSpeak 服务器的最新版本。
使用以下命令下载 TeamSpeak 服务器。
$ TVERSION=3.13.6
$ wget https://files.teamspeak-services.com/releases/server/${TVERSION}/teamspeak3-server_linux_amd64-${TVERSION}.tar.bz2
提取下载的存档。
$ tar -xf ./teamspeak3-server_linux_amd64-${TVERSION}.tar.bz2
第 3 步 - 创建 TeamSpeak 用户和目录
安装 TeamSpeak 的第一步是为服务器创建一个用户。用户的主目录位于 /opt/teamspeak
并且没有密码。
$ sudo adduser ts3 --home /opt/teamspeak --shell /bin/bash --disabled-password
现在我们可以将提取的目录移动到 /opt/teamspeak
目录。
$ sudo mv teamspeak3-server_linux_amd64/* /opt/teamspeak/
授予目录正确的权限。
$ sudo chown -R ts3:ts3 /opt/teamspeak
第 4 步 - 运行 TeamSpeak 服务器
下一步是运行 TeamSpeak 服务器以首次创建特权密钥。此密钥将帮助您以管理员身份访问服务器。
在启动服务器之前,您需要以 TeamSpeak 用户身份登录。运行以下命令以 TeamSpeak 用户身份登录到您的 shell。
$ sudo -u -i ts3
为此,我们将在 TeamSpeaks 工作目录中创建一个名为 .ts3server_license_accepted
的文件。
$ touch .ts3server_license_accepted
运行以下命令以启动服务器。
$ ./ts3server_startscript.sh start
------------------------------------------------------------------
I M P O R T A N T
------------------------------------------------------------------
Server Query Admin Account created
loginname= "serveradmin", password= "BtXdJaCb"
apikey= "BAD8rYVPM61p_-TdrsBqEL_8ZxKzEHIKOkUk6_e"
------------------------------------------------------------------
------------------------------------------------------------------
I M P O R T A N T
------------------------------------------------------------------
ServerAdmin privilege key created, please use it to gain
serveradmin rights for your virtualserver. please
also check the doc/privilegekey_guide.txt for details.
token=WIRagRYXkCnWqM5g7gBoSgcHHpfgLG9w17pcLORy
------------------------------------------------------------------
首次运行服务器将创建一个服务器查询管理员帐户。记下它的用户名和密码。另外,记下 API 密钥和生成的特权令牌。您将在接下来的步骤中需要它。
要停止服务器,请按键盘上的 Ctrl + C。
以 TeamSpeak 用户身份注销。
$ exit
第 5 步 - 创建 TeamSpeak 服务守护进程
创建文件 /lib/systemd/system/ts3server.service
并打开它进行编辑。
$ sudo nano /lib/systemd/system/ts3server.service
将以下代码粘贴到其中。
[Unit]
Description=TeamSpeak3 Server
Wants=network-online.target
After=syslog.target network.target local-fs.target
[Service]
WorkingDirectory=/opt/teamspeak
User=ts3
Group=ts3
Type=forking
ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1
ExecStop=/opt/teamspeak/ts3server_startscript.sh stop
ExecReload=/opt/teamspeak/ts3server_startscript.sh restart
Restart=always
RestartSec=15
[Install]
WantedBy=multi-user.target
按 Ctrl + X 并在出现提示时输入 Y 关闭文件。
重新加载服务守护进程。
$ sudo systemctl daemon-reload
启用并启动 TeamSpeak 服务。
$ sudo systemctl enable ts3server --now
检查服务的状态。
$ sudo systemctl enable ts3server
? ts3server.service - TeamSpeak3 Server
Loaded: loaded (/lib/systemd/system/ts3server.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-03-29 08:18:17 UTC; 2s ago
Process: 23120 ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1 (code=exited, status=0/SUCCESS)
Main PID: 23127 (ts3server)
Tasks: 21 (limit: 2341)
Memory: 17.3M
CPU: 1.953s
CGroup: /system.slice/ts3server.service
??23127 ./ts3server license_accepted=1 daemon=1 pid_file=ts3server.pid
Mar 29 08:18:17 teamspeak systemd[1]: Starting TeamSpeak3 Server...
Mar 29 08:18:17 teamspeak ts3server_startscript.sh[23120]: Starting the TeamSpeak 3 server
Mar 29 08:18:17 teamspeak ts3server_startscript.sh[23120]: TeamSpeak 3 server started, for details please view the log file
Mar 29 08:18:17 teamspeak systemd[1]: Started TeamSpeak3 Server.
第 6 步 - 使用 TeamSpeak 客户端连接
从官方网站下载并安装 Windows TeamSpeak 3 客户端。您还可以下载客户端的最新测试版 (v5),但对于我们的教程,我们将使用较旧且稳定的 v3。
在您的桌面上启动客户端,通过许可证提示后您将看到以下屏幕。

单击“连接”并选择“连接”选项以开始使用。输入您的服务器 IP 地址、第 4 步中生成的密码以及您自己的昵称。

单击“连接”按钮继续。系统将要求您在下一个提示中输入权限密钥。输入第 4 步中的特权令牌,然后单击“确定”继续。

您现在已连接到您的 TeamSpeak 服务器,可以开始使用客户端进行通信。

第 7 步 - 更改访问密码
您可以将 Server Administrator 密码更改为您选择的一个更强的密码。为此,请停止 TeamSpeak 服务。
$ sudo systemctl stop ts3server
切换到 TeamSpeak 用户。
$ sudo -i -u ts3
启动 TeamSpeak 服务器并在命令中添加 serveradmin_password
参数。
$ ./ts3server_startscript.sh start serveradmin_password=password
Starting the TeamSpeak 3 server
TeamSpeak 3 server started, for details please view the log file
将 password
替换为您选择的强密码。
再次停止服务器。
$ ./ts3server_startscript.sh stop
Stopping the TeamSpeak 3 server .
done
切换回您的用户帐户。
$ exit
再次启动 TeamSpeak 服务。
$ sudo systemctl start ts3server
第 8 步 - 安装和配置 MySQL
默认情况下,TeamSpeak 使用 SQLite 数据库来存储所有通信和用户数据。虽然这对于小型社区来说很好,但如果您使用 TeamSpeak 来容纳更多用户,它可能会成为一个问题。幸运的是,TeamSpeak 可以配置为使用 MySQL 或 PostgreSQL 数据库。
我们将配置它以与 MySQL 服务器一起使用。
安装 MariaDB 服务器,它是 MySQL 的直接替代品,因为默认情况下 Debian 不附带 MySQL 8。
$ sudo apt install mariadb-server -y
安装程序将为您启动并启用 Mariadb 服务。您可以检查服务的状态。
$ sudo systemctl status mariadb
运行 MariaDB 的安全脚本。使用下面给出的选项。
$ sudo mysql_secure_installation
Enter current password for root (enter for none): (Press Enter)
Switch to unix_socket authentication [Y/n] Y
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
登录到 MySQL 外壳。
$ sudo mysql
创建 ts3user
用户。将 your_password
替换为您选择的强密码。
mysql> CREATE USER 'ts3user'@'localhost' IDENTIFIED BY 'your_password';
创建 teamspeak3
数据库。
mysql> CREATE DATABASE teamspeak3;
授予用户对 teamspeak3
数据库的权限。
mysql> GRANT ALL PRIVILEGES ON teamspeak3.* TO 'ts3user'@'localhost';
退出外壳。
mysql> exit
切换到 TeamSpeak 用户。
$ sudo -i -u ts3
配置 MariaDB 以使用 TeamSpeak 的第一步是添加 MariaDB 库。您可以在 /opt/teamspeak/redist
文件夹中找到它。
为库创建一个从 redist
文件夹到主工作目录的符号链接。
$ ln -s /opt/teamspeak-server/redist/libmariadb.so.2 /opt/teamspeak-server/libmariadb.so.2
运行以下命令打印 TeamSpeak 所需的共享库。
$ ldd /opt/teamspeak3-server/libts3db_mariadb.so
创建用于存储数据库参数的配置文件并打开它进行编辑。
$ nano ts3db_mariadb.ini
将以下代码粘贴到其中。
[config]
host=127.0.0.1
port=3306
username=ts3user
password=your_password
database=teamspeak3
socket=
使用上面创建的数据库凭据。按 Ctrl + X 并在出现提示时输入 Y 关闭文件。
为 TeamSpeak 创建配置文件并打开它进行编辑。
$ nano ts3server.ini
将以下代码粘贴到其中。
machine_id=
default_voice_port=9987
voice_ip=0.0.0.0
licensepath=
filetransfer_port=30033
filetransfer_ip=0.0.0.0
query_port=10011
query_ip=0.0.0.0
query_ip_whitelist=query_ip_whitelist.txt
query_ip_blacklist=query_ip_blacklist.txt
dbsqlpath=sql/
dbplugin=ts3db_mariadb
dbsqlcreatepath=create_mariadb/
dbpluginparameter=ts3db_mariadb.ini
dbconnections=10
logpath=logs
logquerycommands=0
dbclientkeepdays=30
logappend=0
query_skipbruteforcecheck=0
按 Ctrl + X 并在出现提示时输入 Y 关闭文件。要了解这些配置设置,您可以参考 doc
文件夹中的文件 server_quickstart.md
。上述文件将 TeamSpeak 配置为使用 MariaDB 而不是 SQLite 数据库。
退出 TeamSpeak shell。
$ exit
我们需要告诉 TeamSpeak 服务器使用新创建的配置文件。停止并禁用 TeamSpeak 服务。
$ sudo systemctl stop ts3server && sudo systemctl disable ts3server
打开服务文件。
$ sudo nano /lib/systemd/system/ts3server.service
找到行 ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1
并通过添加配置文件详细信息来更改它,如下所示。
....
Type=forking
ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1 inifile=ts3server.ini
....
按 Ctrl + X 并在出现提示时输入 Y 关闭文件。
重新加载服务守护程序以应用更改。
$ sudo systemctl daemon-reload
启用并启动 TeamSpeak 服务。
$ sudo systemctl enable ts3server --now
检查服务器的状态。
$ sudo systemctl status ts3server
? ts3server.service - TeamSpeak3 Server
Loaded: loaded (/lib/systemd/system/ts3server.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-03-29 12:21:22 UTC; 6s ago
Process: 26511 ExecStart=/opt/teamspeak/ts3server_startscript.sh start license_accepted=1 inifile=ts3server.ini (code=exited, status=0/SUCCESS)
Main PID: 26518 (ts3server)
Tasks: 21 (limit: 2341)
Memory: 16.0M
CPU: 1.818s
CGroup: /system.slice/ts3server.service
??26518 ./ts3server license_accepted=1 inifile=ts3server.ini daemon=1 pid_file=ts3server.pid
Mar 29 12:21:23 teamspeak ts3server_startscript.sh[26518]: apikey= "BAA_lDBRBQxy2nPJXwPQvTRk9_sX3o403Ktlbjz"
Mar 29 12:21:23 teamspeak ts3server_startscript.sh[26518]: ------------------------------------------------------------------
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: ------------------------------------------------------------------
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: I M P O R T A N T
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: ------------------------------------------------------------------
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: ServerAdmin privilege key created, please use it to gain
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: serveradmin rights for your virtualserver. please
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: also check the doc/privilegekey_guide.txt for details.
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: token=kuFsCpz8G7204KiYgQJR8X8orHR+C8OrSv21MZRw
Mar 29 12:21:24 teamspeak ts3server_startscript.sh[26518]: ------------------------------------------------------------------
这样做将重新创建特权密钥。下次您登录服务器时,系统会要求您提供它。但是,您的服务器管理密码将保持不变。
第 9 步 - 升级 TeamSpeak
升级 TeamSpeak 服务器的第一步是停止服务器。
$ sudo systemctl stop ts3server
从官方网站下载最新版本并将存档解压缩到 /opt/teamspeak
目录,按照教程中的步骤 2 和 3 覆盖原始文件。确保更改提取文件夹的权限。
完成后,再次启动服务器。
$ sudo systemctl start ts3server
结论
我们关于在基于 Debian 11 的服务器上安装和使用 TeamSpeak Server 的教程到此结束。如果您有任何问题,请在下面的评论中发表。