Teamspeak(简称TS)是一套专有的VoIP软件,用户可以经由它与其他用户进行语音对话,用户经由客户端软件连线到指定的服务器,在服务器内的频道进行通话。通常TeamSpeak的用户大多为多人连线游戏的玩家,与同队伍的玩家进行通信,并且在游戏的对战方面该软件具有很强的竞争优势。TeamSpeak 3使用基于Web或Telnet的工具来控制服务器的管理及设置,同时TeamSpeak 3支持虚拟服务器个体化,这允许最多10个虚拟服务器运行在同一个进程上。
配置命令 新建 teamspeak 用户:
1 2 3 # adduser --disabled-login teamspeak # su teamspeak $ cd ~
前往下载页面 查看最新服务端版本,并替换之后命令中的版本号。 下载、复制并解压 TS3 服务端文件:
1 2 3 4 $ wget https://files.teamspeak-services.com/releases/server/3.10.1/teamspeak3-server_linux_amd64-3.10.1.tar.bz2 $ tar -xjvf teamspeak3-server_linux_amd64-3.10.1.tar.bz2 $ mv teamspeak3-server_linux_amd64 teamspeak3-server $ rm -rf teamspeak3-server_linux_amd64-3.10.1.tar.bz2
同意许可条款:
1 2 $ cd teamspeak3-server $ touch .ts3server_license_accepted
建立service开机启动文件:
1 2 $ su root # vim /lib/systemd/system/teamspeak3.service
内容为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [Unit] Description=Teamspeak, The most superior online voice communication solution. Wants=network-online.target After=syslog.target network.target network-online.target [Service] WorkingDirectory=/home/teamspeak/teamspeak3-server/ User=teamspeak Group=teamspeak Type=forking ExecStart=/home/teamspeak/teamspeak3-server/ts3server_startscript.sh start ExecStop=/home/teamspeak/teamspeak3-server/ts3server_startscript.sh stop PIDFile=/home/teamspeak/teamspeak3-server/ts3server.pid RestartSec=15 Restart=always [Install] WantedBy=multi-user.target
启动服务,设置开机自启,并查看状态:
1 2 3 $ systemctl start teamspeak3 $ systemctl enable teamspeak3 $ systemctl status teamspeak3
防火墙设置 iptables 1 2 3 4 5 6 iptables -A INPUT -p udp --dport 9987 -j ACCEPT iptables -A INPUT -p udp --sport 9987 -j ACCEPT iptables -A INPUT -p tcp --dport 30033 -j ACCEPT iptables -A INPUT -p tcp --sport 30033 -j ACCEPT iptables -A INPUT -p tcp --dport 10011 -j ACCEPT iptables -A INPUT -p tcp --sport 10011 -j ACCEPT
firewalld 1 2 3 4 5 6 7 systemctl start firewalld # 确认该服务正在运行: sudo firewall-cmd --state firewall-cmd --zone=public --add-port=9987/udp --permanent firewall-cmd --zone=public --add-port=10011/tcp --permanent firewall-cmd --zone=public --add-port=30033/tcp --permanent firewall-cmd --reload
其他设置 下面补充一些或许能够用到 的命令: Change ownership of the TeamSpeak 3 server files.
1 chown -R teamspeak:teamspeak /home/teamspeak
This makes to systemd recognize the file we just created.
1 systemctl --system daemon-reload
创建teamspeak用户并设置密码:
1 2 useradd teamspeak passwd teamspeak
使用teamspeak用户,启动服务。
1 2 ./ts3server_startscript.sh start # 注意首次启动需要保存token和apikey
汉化程序 访问该Github仓库 下载打包文件即可完成客户端汉化。
Docker方式 环境配置 安装 Docker 首先,运行命令sudo apt update更新软件包索引,然后运行命令apt remove runc删除runc。最后运行curl命令导入docker仓库的GPG密钥并安装docker运行命令sudo apt install docker-ce docker-ce-cli containerd.io -y。
1 2 3 4 5 6 7 8 9 10 11 sudo apt update sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y sudo apt-get remove docker docker.io containerd runc -y curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io -y
当脚本运行完成时,你Ubuntu计算机已经安装Docker的最新版本。安装完成后,Docker服务也将会自动启动。您可以运行命令sudo systemctl status docker来检查Docker服务的状态来以验证Docker是否正确的安装。默认情况下,Docker从Docker Hub合并镜像。这是一项基于云的注册服务。
确认服务器已经安装 Docker 和 Docker-Compose
1 2 docker -v docker-compose -v
配置 TeamSpeak 找到合适的目录新建目录 ts 并切换。个人习惯所有 docker 配置统一放在根目录 /data 下,具体位置没有强制要求,但是每组配置都应放在一个单独的文件夹下
1 2 mkdir /data/ts # 创建目录 cd /data/ts # 切换当前目录
新建 docker-compose.yml 文件,粘贴以下内容并保存,文件内容如下:官方镜像 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 # docker-compose.yml version: '3.1' services: teamspeak: image: teamspeak restart: always ports: - 9987:9987/udp # 语音服务 - 30033:30033 # 文件传输 - 41144:41144 # DNS域名解析(可选) - 10011:10011 # 服务器查询 raw(可选) # - 10022:10022 # 服务器查询 SSH(可选) # - 10080:10080 # 网络请求 http(可选) # - 10443:10443 # 网络请求 https(可选) volumes: - ./data:/var/ts3server environment: TS3SERVER_DB_PLUGIN: ts3db_mariadb TS3SERVER_DB_SQLCREATEPATH: create_mariadb TS3SERVER_DB_HOST: db TS3SERVER_DB_USER: root TS3SERVER_DB_PASSWORD: password # 数据库密码 TS3SERVER_DB_NAME: teamspeak TS3SERVER_DB_WAITUNTILREADY: 30 TS3SERVER_LICENSE: accept db: image: mariadb restart: always environment: MYSQL_ROOT_PASSWORD: password # 数据库密码 MYSQL_DATABASE: teamspeak volumes: - ./data/mysql:/var/lib/mysql # 必需,否则重启镜像后数据丢失
启动服务 确认当前在 docker-compose.yml 所在的目录,如 cd /data/ts:
1 2 3 4 5 6 7 8 9 10 11 # 启动服务 docker-compose up # 启动服务 一直运行 detach docker-compose up -d # 关闭服务 docker-compose down # 重启服务 docker-compose restart
用TS客户端连接服务器,会弹出对话框要求输入token,输入token后这个账号就是管理员了。第一次启动时会弹出 Server Query 管理员账号密码 和 token,务必妥善保存。 第一次如果用 docker-compose up -d 启动,相关日志会保存在 ./data/logs 下。
开放规则 云服务器的防火墙设置页添加如下入站规则官方说明 :
1 2 3 4 9987 UDP 30033 TCP 41144 TCP 10011 TCP
ufw防火墙规则 正常情况安装以后应该是默认禁止状态的,输入 ufw status verbose命令可以看到如下界面:
1 2 ufw status verbose Status: inactive
这表示防火墙没有开启,下面启用防火墙。
1 2 ufw enable ufw default deny
运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。再次输入 ufw status verbose,可以看到如下界面:
1 2 3 4 5 # ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip
一般的用户,只需设置如下三条命令:
1 2 3 apt install ufw ufw enable ufw default deny
就已经足够安全了,如果你需要开放某些服务,再使用 ufw allow命令开启,举例如下:
1 2 3 4 5 6 7 8 9 10 ufw allow | deny [service] ufw allow 53 允许外部访问53端口(tcp/udp) ufw allow 3690 允许外部访问3690端口(svn) ufw allow from 192.168.1.111 允许此IP访问所有的本机端口 ufw allow proto tcp from 192.168.0.0/24 to any port 22 允许指定的IP段访问特定端口 ufw delete allow smtp 删除上面建立的某条规则,比如删除svn端口就是 ufw delete allow 3690
开启/关闭防火墙
示例
1 2 3 4 5 6 7 8 9 10 11 12 # 下面是ufw命令行的一些示例: ufw enable/disable:打开/关闭ufw ufw status:查看已经定义的ufw规则 ufw default allow/deny:外来访问默认允许/拒绝 ufw allow/deny 20:允许/拒绝访问20端口,20后可跟/tcp或/udp,表示tcp或udp封包。 sudo ufw allow proto tcp from 192.168.0.0/24 to any port 22:允许自192.168.0.0/24的tcp封包访问本机的22端口。 ufw delete allow/deny 20:删除以前定义的"允许/拒绝访问20端口"的规则