前言
TeamSpeak是一套专有的VoIP软件,用户可以经由它与其他用户进行语音对话,很像电话会议。用户可以戴上耳机与麦克风进行通话。用户可以经由客户端软件连线到指定的服务器,在服务器内的频道进行通话。 通常TeamSpeak的用户大多为多人连线游戏的玩家,与同队伍的玩家进行通信。
搭建
Docker
安装Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
启动TS
- 直接启动
docker run -p 9987:9987/udp -p 10011:10011 -p 30033:30033 -e TS3SERVER_LICENSE=accept teamspeak
version: '3.1'
services:
teamspeak:
image: teamspeak
restart: always
ports:
- 9987:9987/udp
- 10011:10011
- 30033:30033
environment:
TS3SERVER_DB_PLUGIN: ts3db_mariadb
TS3SERVER_DB_SQLCREATEPATH: create_mariadb
TS3SERVER_DB_HOST: db
TS3SERVER_DB_USER: root
TS3SERVER_DB_PASSWORD: example
TS3SERVER_DB_NAME: teamspeak
TS3SERVER_DB_WAITUNTILREADY: 30
TS3SERVER_LICENSE: accept
db:
image: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: teamspeak
支持的环境变量
TS3SERVER_LICENSEPATH
设置TeamSpeak服务器要查找licensekey.dat
的路径。此变量是licensekey.dat
所在目录的路径。默认为/var/ts3server/
。TS3SERVER_DB_PLUGIN
此变量控制 TeamSpeak 使用哪种数据库。TS3SERVER_DB_PLUGINPARAMETER
此变量用于为db插件发送参数。TS3SERVER_DB_SQLPATH
此变量控制TeamSpeak服务器在何处查找sql文件。默认为/opt/ts3server/sql/
。TS3SERVER_DB_SQLCREATEPATH
此变量是用于初始化数据库的sql脚本的路径。这个路径关系到TS3SERVER_DB_SQLPATH
TS3SERVER_DB_CONNECTIONS
这个变量控制是如何到数据库的并发连接。必须至少为2,最多为100。默认值为10。TS3SERVER_DB_CLIENTKEEPDAYS
此变量是 TeamSpeak 服务器将保留未使用的用户身份的天数。已添加到组中的用户将不会被删除,但来宾(Guest)将被删除。TS3SERVER_IP_WHITELIST
此变量用于设置白名单文件的位置。该文件包含IP地址列表,这些IP地址不受洪水保护系统的限制。 警告:请勿添加任何您不信任的IP地址,因为这将使它们淹没服务器。TS3SERVER_IP_BLACKLIST
此变量用于设置黑名单文件的位置。该文件包含IP地址列表,即使服务器重新启动,该列表中的IP地址也无法连接到服务器的查询界面。TS3SERVER_LOG_PATH
此变量控制服务器存储其日志文件的文件夹。默认为/var/ts3server/logs/
。TS3SERVER_LOG_QUERY_COMMANDS
如果将此变量设置为1
,则将记录发送到服务器的每个查询命令。 警告:虽然这在服务器出现问题时可能会有所帮助,但要注意,这可能会导致日志文件变得非常大。除非您绝对希望记录所有命令,否则我们建议大多数时候将此变量设置为0。TS3SERVER_LOG_APPEND
如果将此变量设置为1
,则每个虚拟服务器都会将所有新日志条目写入 Log 文件中。我们建议将此变量设置为0
,这可以减轻你看 Log 文件时的工作量。TS3SERVER_QUERY_PROTOCOLS
逗号分隔的协议列表,可用于连接到ServerQuery。可用的值为raw
和ssh
。如果指定了raw,则默认的 ServerQuery 会通过 10011/tcp 端口进行连接。如果通过SSH进行连接,则加密的 ServerQuery 则会通过 10022/tcp 端口进行连接。可以在此参数中指定上述值的任何组合,包括将其保留为空,这将完全禁用 ServerQuery。TS3SERVER_QUERY_TIMEOUT
由于不活动而断开查询连接之前的秒数。 如果将值设置为零或负数,则将禁用超时。 默认值为300秒。TS3SERVER_QUERY_SSH_RSA_HOST_KEY
查询要使用的ssh_host_rsa_key的所在路径。如果不存在,它将在服务器启动时创建。
手动搭建
首先新建一个用户
useradd -m ts #新建用户
passwd ts #设置密码
切换至ts
用户
su - ts
下载TS服务端
注意:版本号可能有所不同,请在https://teamspeak.com/zh-CN/downloads/下载最新的客户端
wget https://files.teamspeak-services.com/releases/server/3.13.3/teamspeak3-server_linux_amd64-3.13.3.tar.bz2
tar -xjvf teamspeak3-server_linux_amd64-3.13.3.tar.bz2
rm teamspeak3-server_linux_amd64-*.bz2 -f
cd teamspeak3-server_linux_amd64/
同意许可条款
touch .ts3server_license_accepted
#### 启动TS服务端
./ts3server_startscript.sh start
输出:
------------------------------------------------------------------
I M P O R T A N T
------------------------------------------------------------------
Server Query Admin Account created
loginname= "*", password= "*"
apikey= "*"
------------------------------------------------------------------
------------------------------------------------------------------
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=*
------------------------------------------------------------------
注意保存密钥及 ServerQuery 管理员账户和密码
设置自启动
此处在有ROOT权限的用户中运行
cat > /lib/systemd/system/teamspeak.service <<EOF
[Unit]
Description=Teamspeak Server
After=network.target
[Service]
User=ts
Group=ts
Type=forking
Restart=always
WorkingDirectory=/home/ts/teamspeak3-server_linux_amd64/
ExecStart=/home/ts/teamspeak3-server_linux_amd64/ts3server_startscript.sh start
ExecStop=/home/ts/teamspeak3-server_linux_amd64/ts3server_startscript.sh stop
ExecReload=/home/ts/teamspeak3-server_linux_amd64//ts3server_startscript.sh restart
PIDFile=/home/ts/teamspeak3-server_linux_amd64/ts3server.pid
[Install]
WantedBy=multi-user.target
EOF
之后重载systemd :systemctl daemon-reload
开启自启动: systemctl enable teamspeak.service
启动 TeamSpeak : systemctl start teamspeak.service
停止 TeamSpeak : systemctl stop teamspeak.service
重启 TeamSpeak : systemctl restart teamspeak.service
连接
Server Password
为运行时输出的Password
之后privilege key
为输出的Token=
后面的内容
!!第一个登录用户输入正确的密钥后,系统就会自动把这个用户的权限提升为管理员
之后让其他人直接连接就可以了