Der dedizierte TF2-Server (SteamCMD-App 232250) wird anonym installiert, ohne das Spiel auf der Maschine zu besitzen, und mit srcds_run -game tf gestartet. Planen Sie etwa 8 GB Platte, eine halbe Stunde und ein GSLT-Token für die Serverliste ein. Hauptquelle: wiki.teamfortress.com (Linux dedicated server).
Installation Schritt für Schritt
Bereiten Sie eine Linux-Maschine (Ubuntu/Debian) mit mindestens 8 GB freiem Speicher oder einen Windows-PC vor.
Legen Sie einen Nicht-root-Benutzer (steam) an und installieren Sie die 32-Bit-Bibliotheken.
Laden Sie SteamCMD herunter und installieren Sie den Server mit app_update 232250.
Erstellen Sie ein GSLT-Token auf steamcommunity.com/dev/managegameservers (für die Listung nötig).
Erzeugen Sie den Startbefehl mit dem Tool „TF2-Startbefehl“ und starten Sie srcds_run.
Bearbeiten Sie tf/cfg/server.cfg (Tool „TF2 server.cfg-Generator“) und tf/mapcycle.txt.
Öffnen Sie 27015 UDP/TCP und 27020 UDP (und 27005 UDP) in ufw, beim Provider und im Router.
Testen Sie lokal mit connect 127.0.0.1, dann von einer anderen Verbindung mit connect IP:27015.
Erstellen Sie einen systemd-Dienst und planen Sie Updates und Backups.
Voraussetzungen
- System: Linux mit glibc 2.3.6 oder neuer und etwa 8 GB freiem Speicher (TF-Wiki); Windows ebenfalls möglich.
- CPU/RAM: im konsultierten Wiki nicht angegeben; das offizielle Beispiel nutzt 24 Slots. Beobachten Sie die Last, bevor Sie erhöhen.
- Konten: Die Installation erfolgt anonym (TF2 muss auf dem Server nicht besessen werden). Ein Steam-Konto dient zum Erstellen des GSLT-Tokens.
Lokale Installation unter Windows
Entpacken Sie SteamCMD nach C:\steamcmd, installieren Sie den Server und starten Sie srcds.exe mit denselben Parametern wie unter Linux. Testen Sie mit connect 127.0.0.1 in der TF2-Konsole.
cd C:\steamcmd
steamcmd +force_install_dir C:\tf2ds +login anonymous +app_update 232250 validate +quit
cd C:\tf2ds
srcds.exe -console -game tf +map ctf_2fort +sv_pure 1 +maxplayers 24 +sv_setsteamaccount YOUR_GSLT_TOKENLinux-VPS: Benutzer und Abhängigkeiten
Vom TF-Wiki genannte Pakete für 64-Bit-Debian/Ubuntu. In neueren Versionen werden libtinfo5 und libncurses5 evtl. nicht mehr bereitgestellt: Das Wiki verweist dann auf manuelle Downloads.
sudo adduser steam
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32z1 libncurses5:i386 libbz2-1.0:i386 lib32gcc-s1 lib32stdc++6 libtinfo5:i386 libcurl3-gnutls:i386 libsdl2-2.0-0:i386
su - steamLinux-VPS: Installation und erster Start
Befehle aus dem TF-Wiki. Ersetzen Sie YOUR_GSLT_TOKEN (ein gültiges Token ist für den Serverbrowser nötig). Für den Prerelease-Zweig ergänzen Sie -beta prerelease vor +app_update.
mkdir -p ~/steamcmd && cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar zxf steamcmd_linux.tar.gz
./steamcmd.sh +force_install_dir ~/hlserver/tf2 +login anonymous +app_update 232250 +quit
cd ~/hlserver/tf2
./srcds_run -console -game tf +map ctf_2fort +sv_pure 1 +maxplayers 24 +sv_setsteamaccount YOUR_GSLT_TOKENWichtige Konfigurationsdateien
- tf/cfg/server.cfg: Name, RCON-Passwort, Zeit- und Rundenlimits (Wiki-Beispiel: hostname, sv_contact, rcon_password, mp_timelimit, mp_maxrounds).
- tf/mapcycle.txt: Kartenrotationsliste (das Wiki nennt das Format nicht: eine Karte pro Zeile, wie bei anderen Source-Spielen).
- motd.txt und pure_server_whitelist.txt: optional (Willkommensnachricht und sv_pure-Whitelist).
Zu öffnende Ports und Linux-Firewall (ufw)
Um den Spielport zu ändern, fügen Sie -port N zum Startbefehl hinzu (ein Port pro Instanz) und öffnen Sie ihn statt 27015.
Öffnen Sie nur das Nötige und testen Sie von einer anderen Verbindung (nicht vom Server selbst).
- 27015/udp: Spielverkehr (TF-Wiki)
- 27015/tcp: RCON (TF-Wiki)
- 27020/udp: SourceTV (TF-Wiki)
- 27005/udp: Client-Kommunikation (Source-Standardwert, im geprüften TF-Wiki nicht genannt)
sudo ufw allow OpenSSH
sudo ufw allow 27015/udp
sudo ufw allow 27015/tcp
sudo ufw allow 27005/udp
sudo ufw allow 27020/udp
sudo ufw enable
sudo ufw statusWindows-Firewall (netsh)
Erstellen Sie in einer Administrator-Eingabeaufforderung pro Port eine eingehende Regel (oder öffnen Sie „Windows Defender Firewall mit erweiterter Sicherheit“).
netsh advfirewall firewall add rule name="Team Fortress 2 27015 UDP" dir=in action=allow protocol=UDP localport=27015
netsh advfirewall firewall add rule name="Team Fortress 2 27015 TCP" dir=in action=allow protocol=TCP localport=27015
netsh advfirewall firewall add rule name="Team Fortress 2 27005 UDP" dir=in action=allow protocol=UDP localport=27005
netsh advfirewall firewall add rule name="Team Fortress 2 27020 UDP" dir=in action=allow protocol=UDP localport=27020Provider-Firewall und Portweiterleitung (Router)
Bei einem Hoster (OVH, Hetzner, Scaleway …) öffnen Sie dieselben Ports zusätzlich in der Firewall bzw. „Security Group“ des Anbieters: ufw genügt nicht, wenn eine vorgelagerte Firewall existiert. Zu Hause richten Sie im Router für jeden Port eine Weiterleitung (NAT) auf die lokale IP des Rechners ein (statisch oder per DHCP reserviert).
Test: Fügen Sie den Server von einer anderen Verbindung als „IP:Port“ im Serverbrowser von Team Fortress 2 oder in der Konsole hinzu. Schlägt das fehl, prüfen Sie der Reihe nach: Dienst läuft, lokale Firewall, Provider-Firewall, NAT-Weiterleitung.
Autostart: systemd-Dienst
Erstellen Sie /etc/systemd/system/tf2.service (als root) und aktivieren Sie ihn. Passen Sie Benutzer und Pfade an; Logs mit journalctl -u tf2 -f.
[Unit]
Description=Team Fortress 2 dedicated server
After=network-online.target
Wants=network-online.target
[Service]
User=steam
WorkingDirectory=/home/steam/hlserver/tf2
ExecStart=/home/steam/hlserver/tf2/srcds_run -console -game tf -norestart +map ctf_2fort +sv_pure 1 +maxplayers 24 +sv_setsteamaccount YOUR_GSLT_TOKEN
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
# then:
# sudo systemctl daemon-reload
# sudo systemctl enable --now tf2Windows: geplante Aufgabe beim Start
Unter Windows startet eine geplante Aufgabe Ihr .bat-Skript beim Systemstart (Befehl in einer Administrator-Eingabeaufforderung ausführen).
schtasks /Create /TN "Team Fortress 2 server" /TR "C:\tf2ds\start-tf2.bat" /SC ONSTART /RU SYSTEM /RL HIGHESTUpdates, Backups und geplante Neustarts
Stoppen Sie den Dienst vor dem Update (derselbe SteamCMD-Befehl wie bei der Installation), sichern Sie Konfigurations- und Datendateien regelmäßig und planen Sie einen täglichen Neustart, falls der Server mit der Zeit nachlässt.
sudo systemctl stop tf2
steamcmd +force_install_dir /home/steam/hlserver/tf2 +login anonymous +app_update 232250 validate +quit
sudo systemctl start tf2
# backup
tar czf ~/tf2-$(date +%F).tar.gz -C /home/steam/hlserver/tf2 tf/cfg tf/addons tf/mapcycle.txt
# daily restart at 05:00 (root crontab: sudo crontab -e)
0 5 * * * systemctl restart tf2Server eintragen und finden
Tragen Sie Ihren Server auf https://game-rank.com/jeux/team-fortress-2 ein, damit die Community ihn sieht. Im Spiel finden Sie ihn über den Serverbrowser oder per direkter Verbindung mit IP:Port.
Fehlerbehebung: häufige Fehler
- Der Server läuft, erscheint aber nicht in der Liste: GSLT-Token fehlt oder ist ungültig. Lösung: Das TF-Wiki verlangt ein gültiges Token; übergeben Sie es mit +sv_setsteamaccount (oder SRCDS_TOKEN unter Docker) und starten Sie neu.
- Bibliotheksfehler: libtinfo.so.5 / libncurses.so.5 auf einer neuen Distribution nicht gefunden. Lösung: Passende i386-Pakete installieren, falls vorhanden, sonst den manuellen Downloads des TF-Wikis folgen.
- Server von außen nicht erreichbar: Der Dienst läuft, aber niemand kann sich verbinden. Ursache: geschlossener Port (ufw, Provider-Firewall oder fehlende NAT-Weiterleitung). Lösung: Die oben genannten Ports auf allen drei Ebenen öffnen und von einer anderen Verbindung testen.
- Port beim Start bereits belegt: Eine andere Instanz hält den Port. Lösung: Prozesse mit ss -lunp | grep 27015 auflisten, die alte Instanz beenden oder jedem Server per -port einen eigenen Port geben.
- SteamCMD „Failed to install app“ oder hängender Download: häufige Ursache sind volle Platte oder fehlende Ordnerrechte. Lösung: df -h und Ordnerbesitzer prüfen, dann den Befehl mit validate erneut ausführen (ggf. mehrfach).
- srcds_run: „No such file or directory“ oder fehlende 32-Bit-Bibliothek: Der Source-Server ist ein 32-Bit-Programm. Lösung: i386-Architektur aktivieren (dpkg --add-architecture i386) und lib32gcc-s1 sowie lib32stdc++6 installieren.
Häufige Fragen
- Wie viele Spieler fasst ein TF2-Server?
- Das offizielle Beispiel nutzt +maxplayers 24; das konsultierte Wiki nennt keine Obergrenze. Stellen Sie +maxplayers nach CPU und Plugins ein.
- Wie aktualisiere ich den Server?
- Laut TF-Wiki genügt es, den SteamCMD-Installationsbefehl erneut auszuführen (+app_update 232250). Das automatische Update mit -autoupdate braucht zusätzliche, nicht näher beschriebene Parameter (-steam_dir, -steamcmd_script): Bevorzugen Sie ein geplantes Update wie im entsprechenden Abschnitt.
- Darf ich den Server als root starten?
- Nicht empfohlen: Legen Sie einen eigenen Benutzer (z. B. steam) ohne Admin-Rechte an und installieren und starten Sie den Server damit. Eine Schwachstelle im Server oder Plugin gefährdet dann nicht die ganze Maschine.
- Mein Team Fortress 2-Server erscheint nicht in der Liste: Was prüfen?
- Prüfen Sie zuerst, ob die Ports auf allen Ebenen offen sind, der Server nicht im LAN-Modus läuft (sv_lan 0) und, falls das Spiel es verlangt, ein gültiges Server-Token (GSLT) angegeben ist. Die Steam-Liste braucht einige Minuten zur Aktualisierung; verbinden Sie sich solange per IP:Port.
