如何自行架設 TeamSpeak 伺服器
Table of Contents
本文將分享我自行假設 TeamSpeak 伺服器的經驗。
#
事前準備
首先,選擇一個適合的 VPS 提供商。由於語音聊天對於網路延遲非常敏感,因此最好選擇地理位置靠近你和你使用者的供應商。低於 100 毫秒是理想的延遲。
部署好 VPS 後,強化其安全性至關重要。可以參考我的先前文章來瞭解詳細步驟。
#
建立新使用者
為 TeamSpeak 建立一個專用的使用者以提升安全性。
sudo adduser teamspeak
你也可以在 adduser
後方加上 --disabled-login
參數。這個選項會禁止此使用者直接登入,使得必須從 root
等帳號切換過去。
接下來的步驟,請切換至 teamspeak
使用者。
su teamspeak
#
下載 TeamSpeak 伺服器
前往 官方下載頁面,找到最新版 Linux 伺服器的 URL。
使用 wget
下載套件。例如:
wget https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2
然後,解壓縮封存檔。
tar xvfj teamspeak3-server_linux_amd64-3.13.7.tar.bz2
#
同意授權並初次啟動
執行 TeamSpeak 前,我們必須建立一個特定檔案以表示同意授權協議。
touch .ts3server_license_accepted
首次執行時,我們需要產生一組權限金鑰 (privilege key)以便於授予你在新伺服器上的管理員權限。
./ts3server_startscript.sh start
完成後,複製所有輸出內容並妥善保存。最後一行顯示的權杖 (token) 就是你的權限金鑰。
#
防火牆設定
接下來,你需要在防火牆中開啟 9987
、10011
和 30033
連接埠。此處以 firewalld
為例。
sudo firewall-cmd --permanent --add-port=9987/udp
sudo firewall-cmd --permanent --add-port=10011/tcp
sudo firewall-cmd --permanent --add-port=30033/tcp
sudo firewall-cmd --reload
#
連線至你的伺服器
從官方網站下載 TeamSpeak 客戶端。雖然之前執行的是 TeamSpeak 3 伺服器,但我們仍然可以使用新版的 TeamSpeak 6 客戶端連線。
使用 VPS IP 位址登入伺服器。當提示出現時,輸入先前儲存的權限金鑰以取得伺服器的管理員權限。
#
[可選] 建立啟動腳本
為了確保 TeamSpeak 伺服器能在開機時自動啟動,並在崩潰時自動重啟,建議將其設定為 systemd
服務。
切換回 root
身分並建立一個服務檔案。
su root
vim /lib/systemd/system/teamspeak.service
複製並貼上以下內容,並將 [Your PATH]
修改為 TeamSpeak 的安裝路徑。
[Unit]
Description=Teamspeak Server Service
Wants=network.target
[Service]
WorkingDirectory=[Your PATH]
User=teamspeak
ExecStart=[Your PATH]/ts3server_minimal_runscript.sh
ExecStop=[Your PATH]/ts3server_startscript.sh stop
ExecReload=[Your PATH]/ts3server_startscript.sh restart
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
然後,啟用並啟動該服務。
systemctl enable teamspeak.service
systemctl start teamspeak.service
#
[可選] 使用網域連線
透過 IP 位址連線可能不太方便。如果你擁有一個網域名稱,可以依照以下步驟進行設定。本範例將以 Cloudflare 為例,並使用 ts.example.com
作為網域名稱。
-
A Record:
- Type: A
- Name: ts
- Content: [你的 VPS IP 位址]
-
SRV Record:
- Type: SRV
- Name: _ts3._udp.ts
- Priority: 0
- Weight: 5
- Port: 9987
- Target: ts.example.com