Teamspeak Server on Ubuntu

I set this one up for a friend on my Linux client, super easy on a VPS of your choice:

SSH into server

ssh root@yourvpsip

Update

apt update && apt upgrade

Set hostname

hostnamectl set-hostname teamspeak-server
hostname

Edit hosts file

vi /etc/hosts
127.0.0.1       localhost
yourvpsip  teamspeak-server

Add user and give sudo privs

adduser teamspeak
adduser teamspeak sudo

Log in to new user

exit
ssh teamspeak@yourvpsip

Set up SSH

mkdir ~/.ssh

Copy your local public SSH key to your server

scp ~/.ssh/id_rsa.pub teamspeak@yourvpsip:~/.ssh/authorized_keys

On your server, change permissions and configure SSH to disallow root login and password auth

sudo chmod 700 ~/.ssh/
sudo chmod 600 ~/.ssh/*
sudo vi /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
sudo systemctl restart sshd

Install and configure firewall

sudo apt install ufw
sudo ufw default allow outgoing
sudo ufw default deny incoming
sudo ufw allow ssh
sudo ufw enable

Install teamspeak server

cd ~
wget https://files.teamspeak-services.com/releases/server/3.9.1/teamspeak3-server_linux_amd64-3.9.1.tar.bz2
tar xvf teamspeak3-server_linux_amd64-3.9.1.tar.bz2
cd teamspeak3-server_linux_amd64-3.9.1
mv * ../
cd ~
rmdir teamspeak3-server_linux_amd64-3.9.1
rm teamspeak3-server_linux_amd64-3.9.1.tar.bz2

Restart server on boot

sudo vi /lib/systemd/system/teamspeak.service
[Unit]
Description=TeamSpeak 3 Server
After=network.target
[Service]
WorkingDirectory=/home/teamspeak/
User=teamspeak
Group=teamspeak
Type=forking
ExecStart=/home/teamspeak/ts3server_startscript.sh start inifile=ts3server.ini
ExecStop=/home/teamspeak/ts3server_startscript.sh stop
PIDFile=/home/teamspeak/ts3server.pid
RestartSec=15
Restart=always
[Install]
WantedBy=multi-user.target

Enable service on boot

sudo systemctl --system daemon-reload
sudo systemctl enable teamspeak.service
sudo systemctl start teamspeak.service

Set firewall rules

sudo ufw allow 9987/udp
sudo ufw allow 30033/tcp
sudo ufw allow 10011/tcp

Enable lingering so the systemd service wont be killed when you exit your ssh session

sudo loginctl enable-linger teamspeak

Retrieve the privilege key

cat /home/teamspeak/logs/ts3server_* | grep token=

Log in to your teamspeak server at your VPS ip and use the key, that's it. The server is now set up to restart in case it ever reboots.

 Reboot to check

sudo reboot