搭建TeamSpeak服务器较全指南

一、启动 TeamSpeak 服务器

本教程为租用的某平台云服务器,系统是 Ubuntu(Linux)

且直接使用 root 用户(启动时需要等待 10 秒警告 “ ! ”)

1、所需端口

请提前在云服务器打开所需端口

对于 HTTPS 通信,可按照此处所述配置代理。

服务协议本地端口(Server)必要
语音UDP9987
文件传输TCP30033
服务器查询(raw)TCP10011可选
服务器查询(SSH)TCP10022可选
网络查询(http)TCP10080可选
网络查询(https)TCP10443可选
TSDNSTCP41144可选

也可以对应下面的讲述内容按需开启上述端口

2、同意许可条款

touch .ts3server_license_accepted

3、数据库使用 SQLite 搭建

TeamSpeak 默认使用 SQLite, 所以直接执行以下操作即可自动配置,并启动服务器

./ts3server_startscript.sh start

4、密钥及 ServerQuery 管理员账户

在启动后会弹出信息,请以截图或其他方式保存

"Server Query Admin Account created"
loginname = serveradmin
password = ********
apikey = ***************************************

已创建服务器管理员权限密钥,请使用该密钥获取
您的虚拟服务器的服务器管理员权限。
还可查看 doc/privilegekey_guide.txt 了解详情。

token = ****************************************

5、配置 TSDNS

TSDNS 是将域名绑定至 IP 地址,

可以在 TeamSpeak 中通过域名连接语音服务器

  • 进入 tsdns 文件夹中
  • tsdns_settings.ini.example 修改成 tsdns_settings.ini
mv tsdns_settings.ini.sample tsdns_settings.ini
  • 配置 tsdns_settings.ini 文件
vim tsdns_settings.ini

格式:DOMAIN=IP:PORT,(其中域名和 IP 地址请自行更换)

example.com 域名配置 TSDNS 为例:

# 这里只简单解释,更多具体内容看官方给的英文信息:

# example.com=1.1.1.1:9987
# 代表将 example.com 和其他任何子域名,解析到地址为 1.1.1.1:9987 的ts服务器

# *.example.com=1.1.1.1:9987
# 代表将任何以符合 *.example.com 格式的域名,解析到地址为 1.1.1.1:9987 的ts服务器

# 例如,在文件尾写入:
ts.example.com=1.1.1.1:9987

下面,去域名 DNS 服务商分别增加域名的 A 记录和 SRV 记录。

域名映射 IP

在 DNS 里对应域名下添加 两条 A记录,(如有代理状态则选 DNS Only)内容如下:

类型记录值
记录类型A
主机记录(看平台要求)ts
记录值公网 IP
类型记录值
记录类型A
主机记录(看平台要求)tsdns
记录值公网 IP

指定提供特定服务的服务器

在 DNS 里对应域名下添加 两条 SRV记录,内容如下:

类型记录值
记录类型SRV
主机记录(看平台要求)_ts._udp
优先级0
权重0
端口9987
目标地址ts.example.com
类型记录值
记录类型SRV
主机记录(看平台要求)_tsdns._tcp
优先级0
权重0
端口41144
目标地址tsdns.example.com

运行 tsdns 服务:

./tsdnsserver

#或者你可以选择将服务挂在后台
nohup ./tsdnsserver > tsdnsserver.log 2>&1 &

这样,你就可以在客户端通过输入域名(而不是 IP 地址)进入聊天服务器。

6、启用 HTTP / HTTPS ServerQuery

端口为 10011,10022,10080,10443

你可能需要学习大量指令,并且开启此功能是为了管理服务器

具体内容看 teamspeak3-server_linux_amd64 内的 doc 文件夹内的文档

如果不想学习指令,但是又想用其他方法管理服务器:

社区里推荐的是 YaTQA。还有一个叫做 TS3 Manager

7、更新 TS 服务器

  • 如果要更新服务器版本,则要备份好储存数据的 ts3server.sqlitedb 文件
  • 将新版程序覆盖安装后再恢复数据库文件即可

例如:

systemctl stop teamspeak.service              # 设置自启动后的停止服务
cd /usr/local/teamspeak3-server_linux_amd64   # 进入TS3目录
cp ts3server.sqlitedb ../                     # 将数据库文件复制到上一层目录
cd ..                                         # 返回上级目录
rm -r teamspeak3-server_linux_amd64           # 删除目录
  • 下载新版程序到原来位置并解压
  • 然后把 ts3server.sqlitedb 移进去(可能需要再次同意许可条款)
tar -xvf ......
rm ......                                             # 删除压缩包
mv ts3server.sqlitedb teamspeak3-server_linux_amd64/
systemctl start teamspeak.service                     # 设置自启动后的启动服务

二、从网页加入 TS 服务器

完整格式:

ts3server://ts3.hoster.com
?port=9987
&nickname=UserNickname
&password=serverPassword
&channel=MyDefaultChannel
&cid=channelID
&channelpassword=defaultChannelPassword
&token=TokenKey
&addbookmark=MyBookMarkLabel

请注意,如果使用 cid=channelID,参数 channel=MyDefaultChannel 将被忽略。

参数是可选的,大多数情况下,指定 host(ts3.hoster.com)和 port 就足够了。

通常不应指定 Nicknames。用户可在客户端进行配置。

因此,常见的 URL 是这样的:

ts3server://ts3.hoster.com?port=9987

如果只给出端口,则简化为:

ts3server://ts3.hoster.com:9987

或者更短,使用默认端口 9987:

ts3server://ts3.hoster.com

完整 HTML 链接示例:

<a href="ts3server://ts3.hoster.com?port=9987">Click to connect to my server</a>

这样可以在网页中使用超链接邀请用户访问服务器,而无需手动输入服务器地址。


三、部分疑难解答

这里是 TS 官方社区,大部分问题都可以在这找到答案。

1、上传头像大小限制

  1. **对于 TeamSpeak3 :**需在 “工具” 里打开 “设置” ,在应用程序页勾选 “使用进阶权限系统”
  2. 在 “权限” 里搜索 “size” 并更改对应选项数值为 -1(无限大) ,默认是 8192(B)

2、TeamSpeak 客户端聊天框发送图片的问题

  • 首先,截止目前,文件上传大小限制为 10 MB。你可以通过查看这里来了解最新TS客户端在聊天框可发送图片的大小
  • 其次,发送图片不能及时的显示,可能是因租用服务器的带宽较小,上传和同步需要一定时间
  • 最后,如果你想发送较大图片(文件),可以上传到频道文件,并右键引用链接后发送到聊天栏内

3、TeamSpeak 服务器端用一段时间后占用存储空间过大

  • 可能是因为勾选了记录所有日志
  • 可能是因为上传文件到服务器过多

4、TeamSpeak 服务器性能需求

  • 服务器性能需求。win8.1 以上、Mac10.14 Mojave 以上、Linux 任何的最新发行版都可以。CPU 其实没什么性能要求。内存最小 1G。存储最小 15M。
  • 语音所需带宽。一般在购买服务器时标注出来的是 下行带宽Down (从服务器到用户的数据传输速率)。
    仅以语音通话时最坏的情况来说,32 人在同一最高音频质量频道同时说话,服务器的下行带宽就需要:32×(321)×11.87×8÷1,000=94.31 Mbps32 \times (32 - 1) \times 11.87 \times 8 \div 1,000 = 94.31 \text{ Mbps}
    约为 94.31 Mbps 的下行带宽!!!且官方不推荐正常语音时使用 Opus Music,一般默认就行。

    如果就想要最高音质,那么在3Mbps带宽下,最多支持6人在同一频道同时说话。4和5Mbps 7人、6Mbps 8人、7Mbps 9人。

    n最大人数=1+1+4×1000×B下行带宽8×Q音频质量2n_{\text{最大人数}} = \frac{1 + \sqrt{1 + \frac{4 \times 1000 \times B_{\text{下行带宽}}}{8 \times Q_{\text{音频质量}}}}}{2}
  • 如果想要更改默认端口,例如:语音服务端口从 9987 改成 9988。
    1. 停止服务器
    2. 你需要再次启动服务器并添加启动参数“createinifile=1”(例如:“./ts3server_startscript.sh start createinifile=1”)
    3. 再次停止服务器
    4. 编辑文件夹内出现的 ts3server.ini 文件
    5. 再次带参数“inifile=你的文件或者文件路径”启动服务器(例如:“./ts3server_startscript.sh start inifile=ts3server.ini”)

    以上如果你不想这么麻烦,则可以通过 YaTQA 软件在 Statistics 栏里进行编辑(记得启动 10011 端口)。

  • 自行搭建的 TS 服务器人数为 32 人,如果需要其他配置则需要去官网 “功能” 的 “许可” 中查看。
    社区 与 永久许可证(须自行搭建服务器) 价格如下:
    社区:
    服务器人数(Slots)社区存储空间价格(美元)
    6 slots ( 5 + 1 )1 GB3.99/月 / 42.99/年
    11 slots ( 10 + 1 )2 GB4.99/月 / 53.99/年
    27 slots ( 25 + 2 )2 GB8.99/月 / 96.99/年

    永久许可证:
    服务器人数(Slots)服务器个数价格(美元)
    Gamer License 32 slots1 server30.00
    Gamer License 64 slots1 server55.00
    Gamer License 128 slots2 server100.00
    Gamer License 256 slots2 server175.00
    Gamer License 512 slots2 server300.00
    Gamer License 1024 slots2 server500.00