在 2020 年 02 月 28 日的时候,我们上线了我们自己的 TeamSpeak 频道 Alkaid Pro,时隔数个月,我们来好好的谈一谈 我们的 TeamSpeak 频道建设全过程,以及中间的踩坑心得
准备#
搭建一个私有的 TeamSpeak 服务器需要准备以下东西
- 一台服务器
- 一个域名(可选)
在开始之前,请确保你的操作系统是最新的。我们推荐使用最新的 LTS 版本,如 Ubuntu 22.04 LTS 或 Debian 11。
您可以用 uname -a
命令来检查你的 Linux Kernel 版本
系统基础配置#
当安装完毕操作系统后,建议你第一时间打开终端,然后进行系统更新,安装软件日常更新补丁和系统安全补丁。
sudo apt update && sudo apt -y upgrade && sudo apt -y install curl vim wget git sudo unzip apt-transport-https screen ca-certificates dialog softw
当然,如果你觉得你下载或者更新软件的速度有些慢,可以考虑执行命令替换软件所使用的软件源地址,我个人比较喜欢将替换为 “北京外国语大学开源软件镜像站”,然后再执行上面的命令:
cat <<'EOF' > /etc/apt/sources.list
deb https://mirrors.bfsu.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.bfsu.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.bfsu.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
EOF
等待软件和系统补丁更新完毕之后,执行重启操作,让补丁生效即可(首次更新,会更新内核)。
sudo reboot
下载 TeamSpeak 服务端#
进入 /opt 目录
cd /opt
下载 Liunx 服务端#
从 TeamSpeak 官网中获取最新 Liunx Server 64-bit 服务端并下载
wget https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2
因为 TeamSpeak 服务器到中国大陆的线路质量不佳,可能会出现下载缓慢或者下载失败的情况。此时您可以将 files.teamspeak-services.com 替换为 teamspeak-mirror.wevg.org (韩国首尔,推荐) 或者 files.ts.gkd.plus (中国大陆优化 CDN)
比如
wget https://teamspeak-mirror.wevg.org/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2
或者
wget https://files.ts.gkd.plus/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2
解压 Liunx 服务端#
解压并清除 TeamSpeak 服务端压缩包
tar -xjvf teamspeak3-server_linux_amd64-3.13.7.tar.bz2 && rm teamspeak3-server_linux_amd64-3.13.7.tar.bz2
为了保证系统的安全,我们通常不使用 root 账户配置 TeamSpeak 服务器,所以我们在此新建一个名为 teamspeak 用户
useradd teamspeak
赋予刚刚新建的用户权限,并进入该 teamspeak 目录
chown -R teamspeak:teamspeak teamspeak3-server_linux_amd64 && cd /opt/teamspeak3-server_linux_amd64 && su teamspeak
安装 Liunx 服务端#
在启动服务器之前您需要同意许可条款
touch .ts3server_license_accepted
启动服务器
./ts3server_startscript.sh start
设置自启动#
如果您需要让 TeamSpeak 服务器在开机的时候自动启动的话,可以按照此处进行编写 service 文件。请注意此步需要 root 权限
创建 teamspeak.service 文件并编辑
vim /lib/systemd/system/teamspeak.service
在文件中输入并且保存下方内容
[Unit]
Description=Teamspeak, The most superior online voice communication solution.
Wants=network-online.target
After=syslog.target network.target network-online.target
[Service]
User=teamspeak
Group=teamspeak
WorkingDirectory=/opt/teamspeak3-server_linux_amd64/
ExecStart=/opt/teamspeak3-server_linux_amd64/ts3server_startscript.sh start
ExecStop=/opt/teamspeak3-server_linux_amd64/ts3server_startscript.sh stop
PIDFile=/opt/teamspeak3-server_linux_amd64/ts3server.pid
Type=forking
[Install]
WantedBy=multi-user.target
输入 :wq
退出并且保存
然后重新加载 systemd
systemctl daemon-reload
可用命令#
这个时候您可以直接在命令行中使用下面这些命令
开启自启动
systemctl enable teamspeak.service
启动 TeamSpeak
systemctl start teamspeak.service
停止 TeamSpeak
systemctl stop teamspeak.service
重启 TeamSpeak
systemctl restart teamspeak.service
配置连接#
防火墙设置#
TeamSpeak 默认情况下需要下表中的端口,请在防火墙中配置以下端口
端口 | 协议 | 说明 |
---|---|---|
9987 | UDP | 默认语音服务器端口 |
30033 | TCP | 文件传输端口 |
域名设置(可选)#
一般情况您可以直接将域名解析至您的服务器 IP 即可,但这样子会直接暴露服务器的 IP,这个时候我们可以通过域名 SRV 的来绑定你的 Teamspeak 服务器
SRV 并不支持 IP 形式记录,所以在此之前先将一个子域名绑定到 TS 服务器,这里以 dc.hexg.me 为例子
类别 | 记录值 |
---|---|
名称 | _ts3._udp.ts.hexg.me |
Priority | 5 |
Weight | 0 |
Port | 9987 |
Address | dc.hexg.me |