Skip to main content

如何自行搭建 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) 就是你的权限密钥。

# 防火墙配置

接下来,你需要在防火墙中开放 99871001130033 端口。此处以 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 作为域名。

  1. A Record:

    • Type: A
    • Name: ts
    • Content: [你的 VPS IP 地址]
  2. SRV Record:

    • Type: SRV
    • Name: _ts3._udp.ts
    • Priority: 0
    • Weight: 5
    • Port: 9987
    • Target: ts.example.com