FAQ: Warum kommt keiner in mein Spiel rein?

Es kann sein, dass du stundenlang ein Spiel offen hast und auf Mitspieler wartest. Wenn andere Spiele laufen und somit Spieler online sind sollten diese ab und zu auch mal bei dir vorbeischauen. Tun sie das nicht, stehst du die ganze Zeit alleine da und wunderst dich. Tatsächlich aber kann es sein, dass du technisch gar nicht in der Lage bist Spiele zu hosten.
Ob überhaupt ein technisches Problem vorliegt, kannst du wie folgt testen:
Hoste ein Spiel und gehe auf https://crema.clonkspot.org testen. Das Ergebnis sieht dann so aus:


Oben sieht man den Host „DerServer“, bei dem alles in Ordnung ist. Bei den Hosts weiter unten gibt es Probleme. Die Ports sind offensichtlich nicht geöffnet.
Ein häufiger Grund dafür ist „DS-Lite“, auf das ich in diesem Thema auch hauptächlich eingehe.

Verbindungsmöglichkeiten

Vorher schauen wir uns aber mal die verschiedenen Möglichkeiten an sich zu verbinden. Diese sind:
  • Per IPv4 mit offenen Ports
  • Per IPv6 mit offenen Ports
  • Per Netpuncher IPv4
  • Per Netpuncher IPv6

Was ein Netpuncher ist erkläre ich noch weiter unten.

DS-Lite, was ist das?

Dafür müssen wir etwas in die Tiefe gehen. Lange Zeit war es so, dass wenn du mit einem Rechner im Internet unterwegs warst, dies mit einer IPv4 Adresse gemacht hast. Eine IP Adresse kann man sich vorstellen wie eine Hausanschrift und das Internet wie die Deutsche Post. Mit einer IPv4 Adresse kann man 4.294.967.296 Adressen vergeben (davon gehen noch ein paar für reservierte Adressbereiche ab). In den 90ern merkte man, dass diese 4 Milliarden Adressen angesichts der zunehmenden Vernetzung (Wie viele Internetgeräte hast du zuhause?) und der Entwicklung der [Weltbevölkerung](https://de.wikipedia.org/wiki/Weltbev%C3%B6lkerung) (Heute rund 7,63 Milliarden Menschen) knapp werden und man musste Abhilfe schaffen. So veröffentlichte man im Jahr 1998 den Standard IPv6, mit dem nun circa 3,4 x 1038 Adressen vergeben werden können.

Nun kann man mit einer IPv6 Adresse keine IPv4 Adressen ansprechen. Das ist so, als wolltest du einen Brief per Mail verschicken, das Blatt Papier kannst du schlecht in den Bildschirm prügeln. E-Mail und Brief sind nicht zueinander kompatibel. Gleichzeitig sind auch Programme, wie z.B. Clonk Rage nicht darauf ausgelegt IPv6 zu sprechen. Clonk Rage unterstützt nur IPv4. OpenClonk und die aktuelle LegacyClonk Version hingegen hat schon IPv6 Support.

So jetzt aber: DS-Lite, was ist das?

Darum hat man parallel dazu "DS-Lite" entwickelt. "DS" steht für "DualStack". Das bedeutet, dass du sowohl eine IPv4, als auch eine IPv6 Adresse an deinem Internetanschluss zur Verfügung hast. Schön, jetzt ist immer noch nicht das Problem der IPv4 Adressknappheit beseitigt, wenn jeder 5 Handys hat... Man benötigt also eine Technik, mit der sich mehrere Nutzer eine IPv4 Adresse teilen können. Das nennt man dann DS-Lite. Du hast dann eine IPv4 Adresse, die du dir aber mit vielen anderen teilen musst und zusätzlich eine vollwertige (eigene) IPv6 Adresse. Technisch geht das so: Dein Router stellt in der Regel eine Tunnelverbindung über IPv6 zu deinem Internetserviceprovider (ISP) her, der alle Tunnelverbindungen zentral verwaltet und mehrere dieser Verbindungen auf eine IPv4 Adresse legt. In dem IPv6-Tunnel werden dann IPv4 Pakete verschickt.

Problem Portfreigabe mit DS-Lite

Erinnerst du dich an das Briefe versenden weiter oben? Spinnen wir das mal etwas weiter, und zwar so, dass du in einer Großfamilie lebst, wo alle den gleichen Nachnamen dafür aber 65535 Eingangstüren (so viele hat dein Internetanschluss) mit je einer Klingel haben. Der Postbote klingelt also und auf dem Brief steht nie ein Name drauf, dafür aber die Adresse, in dem Fall "123.456.789.001" gefolgt von einem Doppelpunkt und der Türnummer "11112". Zusammen also "123.456.789.001:11112". Was würde man nun machen? Eine Möglichkeit wäre eine Liste ins Haus zu hängen in der steht: Alles was durch die Eingangstür 11112 reinkommt, geht an das Familienmitglied X, alles was durch die Eingangstür 80 kommt geht an Y und alles andere (was nicht definiert ist), wird "gedroppt", also in den Mülleimer geworfen. Es gibt aber auch die Regel: "Wenn X von der Tür 333 einen Brief verschickt und daraufhin eine Antwort an die Tür 333 kommt, dann gebe den Brief an Person X" Nun wechseln wir mal die Begrifflichkeiten: Eine Tür wird ab sofort "Port" genannt und Briefe sind Pakete oder Anfragen.

Was ich dir eben verdeutlicht habe wird Portweiterleitung genannt und gehört zu einem Standard namens „Network Adress Translation“, kurz „NAT“. So etwas gibt es einmal in deinem Router und eben auch bei DS-Lite. Erst mal kümmern wir uns um deinen Provider, der die DS-Lite IPv4 Adressen verwaltet: Wenn du eine Anfrage an Google.de schickst, sucht sich der PC einen entsprechenden zufälligen Port (oben im Beispiel den Port 333) und schickt die Anfrage los. (Für die Techies: ja ich habe hier absichtlich was abgekürzt) Google sieht, dass die Anfrage von der Adresse 123.456.789.001:333 kam und schickt die Antwort an eben diese Adresse. Da der Provider weiß, dass eben eine Anfrage über den Port 333 nach Google ging, lässt er die zurückgehenden Pakete durch und du erhältst dein Suchergebnis. Wenn du aber andersherum möchtest, dass jemand eine Verbindung zu dir aufbaut (Clonkspiele hosten auf Port 11112), dann muss der Provider eine Liste wie oben beschrieben führen, auf der eben vermerkt ist, „Alles was auf Port 11112 reinkommt, soll an die Tunnelverbindung X geleitet werden.“

Technisch ist das möglich aber dein Provider lacht sich ins Fäustchen, wenn du mit der Bitte auf ihn zukommst. Warum? Der Provider wird solche Portweiterleitungen gar nicht erst durchführen, da er sich dann mit den Kunden rumzoffen darf, die auch den Port 11112 zu sich geleitet haben wollen. Anderes Beispiel: Wenn du eine unverschlüsselte Webseite aufrufst, geht das standardmäßig über den Port 80. Es gibt sicher mehrere Kunden, die den Port 80 nutzen möchten, sodass es bei solchen Ports immer Probleme gäbe. Daher bietet der Provider das gar nicht erst an.

Was macht der Netpuncher

Mit LegacyClonk wurde der so genannte Netpuncher eingeführt. Der Netpuncher ist ein Server, zu dem sich sowohl der Host, als auch der Client verbinden. Wir nehmen an, dass beiden durch eine Firewall auf jeder Seite die direkte, eingehende Kommunikation verwehrt ist. Ausgehende Verbindungen sind ja trotzdem möglich. Erinnerst du dich oben an das Beispiel bei der Portweiterleitung mit dem Port 333? Genau das nutzt der Netpuncher aus: Der Host eines Spiels stellt eine Verbindung zum Netpuncher her. Der Netpuncher weiß, woher die Anfrage kommt, also welcher Port an der IP-Adresse des Clients offen ist. Das sagt er dem Client, der sich verbinden möchte. Dieser nutzt den Port und verbindet sich damit mit dem Host. Der Netpuncher hält also für den Client eine Tür auf.

So und da das ein ziemlich dreckiger Hack ist gibt es manche Firewalls, die nicht so dumm sind wie ein Speedport-Router der Telekom. Diese blockieren den Verbindungsaufbau des Clients. So lässt sich also sagen:
Der Netpuncher kann funktionieren, es ist aber nicht garantiert, dass es immer klappt. Daher sind offene Ports immer noch die beste Lösung.

Was mache ich jetzt?

Du hast jetzt also eine der folgenden Ausgangssituationen:
  • Deine Ports sind zu und kein Netpuncher funktioniert oder
  • Der Netpuncher wird in CREMA zwar grün angezeigt, du möchtest aber lieber auf Nummer sicher gehen und auch die Ports freigeben?

Auf DS-Lite prüfen

Dann musst du erst einmal schauen, ob du DS-Lite nutzt. Indizien dafür sind z. B. ein Internetanschluss mit einer IPv6 Adresse oder nicht Kunde der Telekom zu sein. Ansonsten mal in Foren schauen oder den Anbieter direkt fragen. Wenn du eine FRITZ!Box als Router hast lässt sich das recht einfach herausfinden. Einfach [http://fritz.box](http://fritz.box) eingeben und anmelden. Anschließend auf der Hauptseite schauen, ob im Bereich Internet "FRITZ!Box verwendet einen DS-Lite-Tunnel" steht. Wenn ja, dann benutzt du DS-Lite.

Scheiße ich habe DS-Lite!

Nun bleiben dir ziemlich genau drei Möglichkeiten:
  • Beim Provider betteln, vielleicht macht er’s ja

    Wenn ja:

    • Port TCP 11112
    • Port UDP 11113
  • Einen 4in6 Tunnelbroker nutzen. Dieser lässt sich in der FRITZ!Box konfigurieren. Damit habe ich aber keinerlei Erfahrung. Ein Tunnelbroker ist ein in der Regel kostenpflichtiger Dienst, bei dem du dir eine vollwertige IPv4 Adresse mietest, die nur dir gehört und bei der du dann eben auch Ports freigeben kannst.

  • Damit leben, dass du nur per IPv6 hosten kannst (sofern die die Ports wie weiter unten beschrieben freischaltest). Deine Freunde benötigen dann ebenfalls einen Internetanschluss mit IPv6, um sich verbinden zu können. Stand 2021/22 haben etwa 50% der Nutzer kein IPv6.

Ich habe kein DS-Lite!

Herzlichen Glückwunsch! Jetzt bloß nicht den Router tauschen oder einen neuen Vertrag mit dem Provider eingehen... Da du noch immer nicht hosten kannst, gibt es noch zwei folgende Einstellungen zu checken.
Portfreigaben am Router einrichten / prüfen
Dein Router nutzt wie oben schon erwähnt auch NAT. Das heißt du musst dem dummen Ding sagen, dass er alle Anfragen die auf Port 11112 eingehen auch weiterleitet. Hierzu wieder auf die Fritz!Box surfen, anmelden und unter "Internet" → "Freigaben" "Ein Gerät für Freigaben hinzufügen". Bei anderen Routern sieht das natürlich anders aus, die Technik ist aber die gleiche.


Anschließend deinen PC aus der Liste auswählen und unten „Neue Freigabe“ anwählen.

Anschließend eine Portfreigabe TCP 11112 wie im Bild einrichten und mit einem Klick auf „OK“ bestätigen, aber nicht zwei Mal auf OK klicken… Es empfiehlt sich auch den Port 11111 freizugeben. Sollte der Server, an dem die Spiele angemeldet werden (league.clonkspot.org) ausfallen, ist mit der Freigabe von Port TCP 11111 für andere ein „Direktbeitritt“ über das Netzwerkmenü unter Eingabe deiner IP-Adresse möglich. Nun noch einmal unten „Neue Freigabe“ anwählen und das Ganze für den Port UDP 11113 machen.


Mit einem Klick auf OK gelangt man dann wieder in die Übersicht der Freigaben für alle Rechner. Hier muss noch einmal auf übernehmen geklickt werden.

Das Ganze muss dann noch einmal für IPv6 gemacht werden. Die Router sperren eingehende IPv6-Verbindungen nicht aus technischen Gründen (wie bei IPv4), sondern um dich vor Angriffen aus dem Internet zu schützen. Bei neueren Softwareversionen der Fritz!Box kannst du mit einer IPv4-Freigabe auch gleichzeitig die entsprechende IPv6-Adresse des Rechners für die genannten Ports freischalten. Ich glaube das Häkchen heißt dort schlicht „IPv6-Freigabe“

Damit hat man nun dem Router eine Anweisung gegeben, wie er mit den ankommenden Paketen auf Port 11111-11112 TCP und 11113 UDP zu verfahren hat.

Die Firewall am Rechner überprüfen
Als letztes solltest du deine Firewall überprüfen. Sofern du keine Firewall eines Antivirenprogamms nutzt, sondern unter Windows die Windows Defender Firewall, sollte sich diese beim ersten Netzwerkstart von Clonk entsprechend gemeldet haben. Um deine damals gewählte Einstellung zu prüfen suche in Windows nach "erweiterter Sicherheit" und du gelangst optimaler Weise zum Treffer "Windows Firewall mit erweiterter Sicherheit", unter Windows 10 "Windows Defender Firewall mit [...]" Dort sollte unter den eingehenden Regeln mehrere Einträge "Clonk Rage" vorhanden sein. Wenn nicht, müssen die Regeln angelegt werden. Da die Firewallprogramme sehr spezifisch sind und sich in der Bedienung stark unterscheiden, kann hier leider nicht darauf eingegangen werden.

Ich hoffe ich konnte dich ein bisschen schlauer machen und dein Problem lösen.

Info: Dies ist ein Wikipost, er kann also nach Belieben verbessert werden.

3 „Gefällt mir“