如何自行搭建 TeamSpeak 服务器
Table of Contents
本文总结了我自行搭建 TeamSpeak 服务器的经验。
#
事前准备
首先,选择一个合适的 VPS 提供商。由于语音聊天对网络延迟非常敏感,最好选择服务器地理位置靠近你和你用户的提供商。延迟低于 100 毫秒是理想的选择。
部署好 VPS 后,加固其安全性至关重要。你可以参考我的上一篇文章来了解详细步骤。
#
创建新用户
为 TeamSpeak 创建一个专用的用户以提高安全性。
sudo adduser teamspeak
你也可以在 adduser
后方加上 --disabled-login
参数。该选项会禁止此用户直接登录,你必须从 root
等账户切换过去。
接下来的步骤,请切换至 teamspeak
用户。
su teamspeak
#
下载 TeamSpeak 服务器
前往官方下载页面,找到最新版 Linux 服务器的 URL。
使用 wget
下载软件包。例如:
wget https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2
然后,解压缩存档。
tar xvfj teamspeak3-server_linux_amd64-3.13.7.tar.bz2
#
同意许可并初次启动
运行 TeamSpeak 前,我们必须创建一个特定文件以表示同意许可协议。
touch .ts3server_license_accepted
首次运行时,你需要生成一个权限密钥 (privilege key)。该密钥将用于授予你在新服务器上的管理员权限。
./ts3server_startscript.sh start
完成后,复制所有输出内容并妥善保存。最后一行显示的令牌 (token) 就是你的权限密钥。
#
防火墙配置
接下来,你需要在防火墙中开放 9987
、10011
和 30033
端口。此处以 firewalld
为例。
sudo firewall-cmd --permanent --add-port=9987/udp
sudo firewall-cmd --permanent --add-port=10011/tcp
sudo firewall-cmd --permanent --add-port=30033/tcp
sudo firewall-cmd --reload
#
连接至你的服务器
从官方网站下载 TeamSpeak 客户端。虽然之前运行的是 TeamSpeak 3 服务器,但我们仍然可以使用新版的 TeamSpeak 6 客户端连接。
使用 VPS IP 地址登录服务器。当提示出现时,输入先前保存的权限密钥以获取服务器的管理员权限。
#
[可选] 创建启动脚本
为了确保 TeamSpeak 服务器能在开机时自动启动,并在崩溃时自动重启,建议将其设置为 systemd
服务。
切换回 root
用户并创建一个服务文件。
su root
vim /lib/systemd/system/teamspeak.service
复制并粘贴以下内容,并将 [Your PATH]
修改为 TeamSpeak 的安装路径。
[Unit]
Description=Teamspeak Server Service
Wants=network.target
[Service]
WorkingDirectory=[Your PATH]
User=teamspeak
ExecStart=[Your PATH]/ts3server_minimal_runscript.sh
ExecStop=[Your PATH]/ts3server_startscript.sh stop
ExecReload=[Your PATH]/ts3server_startscript.sh restart
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
然后,启用并启动该服务。
systemctl enable teamspeak.service
systemctl start teamspeak.service
#
[可选] 使用域名连接
通过 IP 地址连接可能不太方便。如果你拥有一个域名,可以依照以下步骤进行配置。这里将以 Cloudflare 为例,并使用 ts.example.com
作为域名。
-
A Record:
- Type: A
- Name: ts
- Content: [你的 VPS IP 地址]
-
SRV Record:
- Type: SRV
- Name: _ts3._udp.ts
- Priority: 0
- Weight: 5
- Port: 9987
- Target: ts.example.com