Server im Steam-Serverbrowser (LAN-Reiter)
Spieler finden die Server in Steam unter Ansicht → Spielserver → LAN. Dort erscheinen sie mit einem Schloss, weil Match-Server ein Passwort haben. Messer-Server erscheinen ohne Schloss.
Warum nur bestimmte Ports
Der LAN-Reiter sucht per Broadcast und fragt nur die Ports 27015 bis 27020 ab. Server auf anderen Ports antworten nie und tauchen dort nicht auf. Pro IP-Adresse passen also höchstens 6 Server in den LAN-Reiter.
Deshalb vergibt die Anwendung den Spielport zuerst aus CS2_LAN_PORTS (Standard 27015-27020). Sind die belegt, kommt der Spielport aus dem normalen Bereich (CS2_PORT_RANGE_START bis CS2_PORT_RANGE_END). Solche Server laufen ganz normal, Spieler erreichen sie über den Verbindungsbefehl auf der Webseite oder über die Favoriten in Steam.
CSTV-Port
Der CSTV-Port liegt immer CS2_TV_PORT_OFFSET (Standard 100) über dem Spielport:
| Spielport | CSTV-Port |
|---|---|
| 27015–27020 (LAN-Reiter) | 27115–27120 |
| 27100–27139 (normal) | 27200–27239 |
Auf jedem Docker-Host müssen deshalb auch diese CSTV-Ports frei sein. Verzögerung und Verhalten am Ende einer Serie stehen unter CSTV.
Host-Netz
Docker reicht Broadcast-Pakete über die Port-Weiterleitung nicht an Container weiter. Server auf einem LAN-Port laufen deshalb direkt im Netz des Hosts (--network host). Alle anderen Server laufen wie bisher mit Port-Weiterleitung.
Folgen:
- Fremde Dienste: Im Host-Netz meldet Docker keinen Portkonflikt. Die Anwendung prüft deshalb vor dem Start per SSH (
ss), ob ein fremder Dienst den Port belegt, und nimmt sonst den nächsten. - Firewall: Ohne Docker-Weiterleitung greift die Firewall des Hosts. Sie muss die Ports erlauben.
LAN-Ports pro Host
Läuft auf einem Host schon etwas auf einem der Ports 27015–27020, schränkt man die LAN-Ports für diesen Host ein. In CS2_DOCKER_HOSTS:
{"name":"cs2docker","dockerHost":"ssh://cs2docker","publicHost":"192.168.178.111","portStart":27100,"portEnd":27139,"lanPorts":"27016-27019"}
"lanPorts":"" schaltet es für einen Host ab. Im Admin-Bereich steht das unter Einstellungen → Docker-Hosts in der Spalte LAN-Ports (Steam).
Servername
Im Browser heißen die Server Maxlan | Team A vs. Team B, Messer-Server Maxlan | Messer 1 5v5 (Seitenwahl). Den Anfang ändert CS2_SERVERNAME_PREFIX.
Prüfen
Erscheint ein Server nicht im LAN-Reiter:
- Spielport ansehen (Admin-Bereich, Matchkarte). Liegt er nicht zwischen 27015 und 27020, ist das so gewollt.
- Steht er auf einem LAN-Port, aber nicht in der Liste: Firewall des Hosts prüfen und ob der Container im Host-Netz läuft (
docker inspect <container> --format '{{.HostConfig.NetworkMode}}'ergibthost). - Steam-Serverfenster schließen und neu öffnen, der LAN-Reiter sucht nur beim Öffnen und Aktualisieren.