准备阶段
首先选择服务器,这里我使用的是腾讯云近期推出的无忧计划的轻量服务器,最基础的1C2G50GB国内地区只要15元一个月,还送一年的域名属实是真香了。
轻量无忧计划购买直达:https://curl.zijiebao.com/DpFvxIlD
购买时可以按我下面的选择即可,按我的习惯系统推荐是使用Debian10,因为相对centos来说,debian更省资源,当然你想用centos也没什么问题。域名就随意了,按自己喜好来就行,后面可以给TS直接用域名指向。
根据提示购买即可
购买并创建完成后,前往控制台-轻量应用服务器查看服务器信息,首次登陆服务器需要重置一下root密码
根据提示修改密码即可
重置完密码后,可以使用Xshell来连接服务器,如下图所示设置即可
设置完成后点击连接即可,根据提示输入用户名与密码,默认用户名为root
至此,准备工作完成
部署步骤
连接服务器后,我们先输入apt apdate
来更新一下软件包清单
安装screen(可选)
- 更新完成后,首先执行
apt install screen -y
来安装一下screen - 安装screen后,执行
screen -R ts
来创建一个新的shell窗口,后续代码可在此窗口执行,即使SSH意外中断也可以恢复窗口
如需退出screen创建的shell窗口,请键盘同时按下Ctrl Shift D
,如果在此窗口意外中断SSH,请重新连接SSH后执行screen -d ts
后执行screen -r ts
即可恢复窗口,如忘记screen窗口名称,请执行screen -ls查看全部窗口列表
下载Teamspeak软件包
首先,我们从teamspeak官网下载解压最新的server端软件包
Teamspeak官网下载地址直达:TeamSpeak 下载 | TeamSpeak
这里演示使用64Bit的3.13.6版本,如果不理解64bit与32bit区别,请查看此文章:操作系统64位和32位的区别及原理_JUST DON’T GIVE UP!的技术博客_51CTO博客
代码语言:javascript复制wget -c https://files.teamspeak-services.com/releases/server/3.13.6/teamspeak3-server_linux_amd64-3.13.6.tar.bz2tar -xvf teamspeak3-server_linux_amd64-3.13.6.tar.bz2
好!下载失败!这时候我们就需要自己下然后用其他软件来进行手动传了,大陆这高墙属实顶。
此时我们可以使用XFTP来进行手动上传
在Xshell客户端内点击箭头所指图标即可启动XFTP并自动使用SCP协议连接到服务器
传输完成后,现在来进行解压并重命名文件夹,再移动文件夹到/home
tar -xvf teamspeak3-server_linux_amd64-3.13.6.tar.bz2mv teamspeak3-server_linux_amd64 teamspeakmv teamspeak /homecd /home/teamspeak
创建用户并赋予权限
由于teamspeak官方不建议使用root用户来运行,所以我们来创建个新用户给teamspeak并切换到此用户来运行
代码语言:javascript复制useradd teamspeakpasswd teamspeak
如果切换到teamspeak用户后,界面只显示$,请输入bash后回车即可临时解决
如果想永久解决,请切换至root用户后,使用vi编辑器编辑/etc/passwd
文件,将最后一行的sh改为bash保存即可。
切回root用户,赋予teamspeak文件夹权限
代码语言:javascript复制su rootchown -R teamspeak:teamspeak /home/teamspeak/
同意许可证条款并启动服务器
切到teamspeak用户,并创建授权文件
代码语言:javascript复制su teamspeakcd teamspeaktouch .ts3server_license_accepted
启动服务器,注意第一次启动会显示token密钥和server query管理账号与密码,注意保存
代码语言:javascript复制./ts3server_startscript.sh start
放行通信端口
端口 | 协议 | 使用说明 | 是否必须 |
---|---|---|---|
9987 | UDP | 默认语音服务端口 | 是 |
10011 | TCP | ServerQuery raw 端口 | 否 |
10022 | TCP | ServerQuery SSH 端口(3.3.0 以上版本服务端) | 否 |
10080 | TCP | WebQuery(HTTP) | 否 |
10443 | TCP | WebQuery(HTTPS) | 否 |
30033 | TCP | 文件传输端口(上传每个房间的头像这个端口就必须开) | 是 |
41144 | TCP | TSDNS服务端口 | 否 |
腾讯云轻量的Debian镜像没有安装UFW防火墙,使用的是iptables进行端口管理,需要使用iptables进行端口放行。
代码语言:javascript复制iptables -I INPUT -p udp --dport 9987 -j ACCEPTiptables -I INPUT -p tcp --dport 30033 -j ACCEPT#这里是放行了9987端口的UDP通信与30033的TCP通信
相对于iptables,我更推荐安装ufw进行端口管理,执行sudo apt install ufw -y
即可安装,安装后请按下面命令启用ufw
ufw enableufw allow sshufw allow 9987/udpufw allow 30033/tcpufw status #查看ufw状态#如果你还同时在此服务器上运行其他程序,请根据程序所需端口依次放行
没什么意外的话,此时就可以使用客户端进行连接了。
客户端连接
下载teamspeak客户端后,可以前往此页面下载teamspeak简中翻译包,下载文件名为Chinese_Translation_zh-CN.ts3_translation
- Releases · jitingcn/TS3-Translation_zh-CN (github.com)
下载完成后点击即可启用翻译包,重启软件后生效。
启动软件后点击连接,输入服务器IP与昵称后即可连接服务器
第一次连接会要求输入token来激活管理员权限,这里输入之前启动服务器时出现的token后面的数值后点OK即可
取得管理员权限后,服务器的一切设定均可在客户端内设置,服务器端无需再进行其他设置。token只能使用一次,请务必保存好激活后的身份,点击工具-身份-鼠标右键点击身份-导出到本地
这里我推荐注册一个teamspeak账号进行身份与服务器的多端同步,要是软件配置也能同步那将绝杀,可惜加不得。
最后的工作(使用systemd进行守护)
因为teamspeak本身没有守护程序,所以出了问题你就只能手动重启(包括重启服务器)
所以我们这里使用systemd来进行程序守护,让我们省的麻烦了
首先创建service文件
代码语言:javascript复制vi /lib/systemd/system/teamspeak.service
然后按下面样式写入,注意将路径换成你自己的路径
代码语言:javascript复制[Unit] Description=teamspeakAfter=network.target [Service] User=teamspeakGroup=teamspeakType=forkingWorkingDirectory=/home/teamspeak/PIDFile=/home/teamspeak/ts3server.pidExecStart=/home/teamspeak/ts3server_startscript.sh startExecStop=/home/teamspeak/ts3server_startscript.sh stopRestartSec=15Restart=always[Install] WantedBy=multi-user.target
然后重启systemd
代码语言:javascript复制systemctl daemon-reload
设置开机自启动
代码语言:javascript复制systemctl enable teamspeak.service
启动服务
代码语言:javascript复制systemctl start teamspeak.service
重启服务
代码语言:javascript复制systemctl restart teamspeak.service
停止服务
代码语言:javascript复制systemctl stop teamspeak.service
经过我测试,teamspeak如果想要以systemd的方式守护,那么它的文件似乎不能放在用户根目录,systemd会返回错误1。新建一个目录放入即可
一些碎碎念
国内百度搜出来的什么中文站就tm离谱,难怪官方不愿意出中文包,这盗版站简直离谱到家了,要不是看到他那魔改客户端我都以为真的是中国官网了,一查代理商列表发现国内根本就没有代理商也没有任何官方的Teamspeak服务器,也就是说这是个铁盗版,还特么10块一个月起步,真的是相当的”便宜“啊。
参考资料
- Which ports does the TeamSpeak 3 server use? – TeamSpeak
- 虚拟机创建和删除用户以及切换用户后只显示$问题_冲冲冲的博客-CSDN博客_虚拟机新建用户命令
- (⊙﹏⊙)哎呀,崩溃啦! (tdeh.top)
- iptables参数详解 – 简书 (jianshu.com)
- linux中用iptables开启指定端口 – 修瑾 – 博客园 (cnblogs.com)
- 系统运维|Linux 防火墙 ufw 简介