Angepinnt Verbindungsprobleme lösen und Verbindungen verbessern

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Verbindungsprobleme lösen und Verbindungen verbessern

      Hallo liebe Community,

      immer wieder klagen unschuldige Mitspieler über unvollständige Serverlisten... Dies soll sich ab heute ändern !

      Nun, was ihr dafür braucht ?

      - Grundlegende Computerkenntnisse (sind nie verkehrt)
      - Zugang zu den Port-Freigaben bzw. Weiterleitungen in eurem Router
      - Gegebenenfalls Adminrechte, Task-Manage, Konsole
      - Ein paar Minuten deiner Zeit


      Wie soll das gehen ? Ich habe doch schon alles Mögliche versucht ... Wirst du mir vielleicht entgegnen :D

      Die Antwort darauf ist relativ einfach und hat mit der eingebauten Firewall im Router zu tun. Diese blockt teilweise Pakete zu einigen Ports, weshalb z.B. Server-Informationen den Client nicht erreichen können.
      (Möglicherweise blockiert die Firewall von Windows bereits die Pakete -> Programm über die Windows-Firewall kommunizieren lassen )

      Wie können wir diese Blockade denn nun lösen ?

      Indem wir die entsprechenden Ports im Router freigeben.
      Teeworlds nutzt jedoch standardmäßig eine dynamische Portzuweisung, weshalb man gleich alle Ports freigeben müsste. Jedoch wird so die Schutz-Funktion schnell zunichte gemacht ...
      Aber wer hätte gedacht, das Teeworlds bereits eine simple Config-Variable besitzt, die genau unseren Zweck eines festen Ports erfüllt ?

      Die dafür notwendige Variable heißt "bindaddr" und bindet den lokalen Socket an die übergebene Adresse.
      In den meisten Fällen ist die Variable nicht gesetzt, weshalb sich TW einfach einen freien Port zuweisen lässt.

      Um nun den lokalen Port festzulegen, gehst du in deinen Roaming/Teeworlds-Ordner und editierst deine settings.cfg oder deine Parameter, mit denen du Teeworlds aufrufst.
      (Ich empfehle letzteres, da Teeworlds die Variable NICHT wieder speichert, so dass sie beim "ordentlichen" Quit aus der settings.cfg verschwindet)

      Teeworlds mit Parametern aufrufen


      Das ganze kansnt du z.B. über eine Batch-Datei lösen, oder du erstellst eine Verküpfung, gehst dort auf Eigenschaften und fügst hinter Ziel ein Leerzeichen und

      Quellcode

      1. "bindaddr "localhost:PORT""
      ein.
      So sieht die gesamte Zeile in Ziel bei mir so aus:

      Quellcode

      1. D:\Windows\Users\Paddy\Desktop\teeworlds-0.6.2-win32\teeworlds.exe "bindaddr "localhost:1234""


      Um eine Batch-Datei zu bekommen, erstellen wir z.B. eine Text-Datei (.txt) und ändern die Endung in .bat (Falls die Endungen nicht angezeigt werden: ALT->Extras->Ordneroptionen->Ansicht->"Bekannte Dateierweiterungen ausblenden" -> Haken weg )

      Dort fügen wir folgenden Code ein:
      (Natürlich mit deiner Port-Nummer)

      Quellcode

      1. @echo off
      2. start "" "teeworlds.exe" "bindaddr "localhost:PORT""
      3. exit


      Dann die Datei noch im gleichen Order wie die Teeworlds.exe speichern.
      Nun hast du beim Ausführen der Batch-Datei den Parameter immer mit dabei ;)

      Das ganze ist eine ganze Adresse als Text (-> "" ), weshalb wir localhost als Adresse des eigenen PCs einfügen.
      Die Port-Nummer kommt ohne weitere Leerzeichen, durch einen Doppelpunkt getrennt dahinter.
      Zu beachten ist, dass der Port aus 2 Byte (16 Bits) besteht, weshalb seine Möglichkeiten auf 2^16 = 65536 begrenzt sind.
      Zudem sind bestimmte Ports standardisiert, weshalb man lieber andere Ports wählen sollte.
      Ich empfehle die Wahl des Portes nach dieser Liste, da so die Wahrscheinlichkeit sinkt, einen Port zu erwischen, der bereits benutzt wird.
      HINWEIS: Die Ports in der Liste sind möglicherweise bereits vergeben und sollten vermieden werden !
      Da die Zählung bei 0 anfängt ist der höchste mögliche Port 65535.

      Quellcode

      1. bindaddr "localhost:PORT"


      z.B:

      Quellcode

      1. bindaddr "localhost:54321"


      (Speichern nicht vergessen ;)
      Falls jedoch die Bindung an den spezifischen Port scheitert, dann sucht sich TW wie gewohnt einen freien Port, oder spuckt eine Fehlermeldung aus.

      Um nun zu überprüfen, ob Teeworlds sich an den richtigen Port gebunden hat nutzen wir den Task-Manager und unsere Konsole in Verbindung mit "netstat.exe", das uns die aktuellen Verbindungen anzeigt.

      Dafür müssen wir als erstes Teeworlds starten.

      Im Taskmanager finden wir die Process-ID:

      Um sie anzuzeigen, oben auf Ansicht->Spalten auswählen.



      Und dann einen Haken bei PID setzen:



      Nun wissen wir, welche ID unser Prozess hat und können ihn eindeutig zuordnen.

      Im nächsten Schritt öffnen wir die Konsole (Ausführen->cmd) und geben ein: "netstat -a -n -o"

      Dies sollte uns eine Übersicht der TCP und UDP Verbindungen in die Konsole drucken.

      Etwas weiter unten (bei den UDP-Sockets) sollte sich nun auch unser Teeworlds-Prozess befinden.
      Hier ein kleiner Ausschnitt:

      Auf der rechten Seite bzw. in der rechten Spalte sind die PIDs zu sehen, während links die gebundenen Adressen zu finden sind.
      Wie gewohnt steht der Port hinter den Doppelpunkten, der in diesem Beispiel gerade 65535 ist, was meinem zuvor eingestellten Port entspricht.
      Falls die Port-Nummer nun von deiner übergebenen abweicht, ist es sehr wahrscheinlich, dass der Port gerade anderwaltig benutzt wird. Suche dir einfach einen neuen aus und probiere es nochmal.


      Jetzt haben wir den ersten Schritt gemeistert, wir haben einen festen Port !

      Der folgende Schritt ist weniger komplex, jedoch von Router zu Router unterschiedlich.

      In meinem Fall handelt es sich um eine schöne Fritz!Box, jedoch sollte das ganze auf anderen Routern analog funktionieren.

      Meldet euch in der Benutzeroberfläche des Routers an und geht zu den Port-Freigaben oder Weiterleitungen.

      Dort erstellst du zwei neue Weiterleitungen. Eine mit dem Protokoll UDP für die Pakete der Serverinformation und eine mit dem Protokoll TCP für die Verbindung mit dem Server.
      sowohl Eingangs- als auch als Ziel-Port deinen gewählten Port festlegen.

      Als Ziel-Computer musst du entweder deine lokale Netzwerk-IP (kannst du über ipconfig herausfinden) angeben oder deinen Computer aus einer Liste wählen.

      Beispielkonfiguration für UDP (TCP analog, lediglich Protkoll->TCP auswählen):




      Nur noch auf "OK" / "Übernehmen" klicken und eigentlich sollte es das auch schon gewesen sein.

      Da ich keine Probleme mit der Serverkommunikation hatte, konnte ich meine Lösung nicht testen und bitte um Rückmeldung.

      Eventuell kann eine Port-Freigabe auch die Verbindung allgemein verbessern ;) (Wie gesagt, Rückmeldungen wären schön ).

      Somit wünsche ich nur noch eine Gute Nacht.

      Mit freundlichen Grüßen,

      Pata

      Achso: Für die Nutzer anderer Systeme ist dieser Vorgang ähnlich.

      PS: Wer mal neugierig ist, der kann in der Port-Liste nach dem Teeworlds-Server suchen :P

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Patafix () aus folgendem Grund: Update

    • geil danke patafix!!


      ich habe noch ne frage: als port wähle ich doch am besten einen, der in der liste der stand. ports beides mal grün bzw. ja hat oder?

      und mit den parametern meinst du doch die console in tw welche man über f1 aufruft?

      speichern der eingabe von bindaddr nur mittels enter? Und dann nochmal per strg+shift+q quitten?

      lg

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von .Shura ()

    • Patafix schrieb:

      Um nun den lokalen Port festzulegen, gehst du in deinen Roaming/Teeworlds-Ordner und editierst deine settings.cfg oder deine Parameter, mit denen du Teeworlds aufrufst.
      (Ich empfehle letzteres, da Teeworlds die Variable NICHT wieder speichert, so dass sie beim "ordentlichen" Quit aus der settings.cfg verschwindet)


      Wie genau ändere ich denn meine Parameter, mit denen ich Teeworlds aufrufe ?



    • .Shura schrieb:

      geil danke patafix!!


      ich habe noch ne frage: als port wähle ich doch am besten einen, der in der liste der stand. ports beides mal grün bzw. ja hat oder?

      und mit den parametern meinst du doch die console in tw welche man über f1 aufruft?

      speichern der eingabe von bindaddr nur mittels enter? Und dann nochmal per strg+shift+q quitten?

      lg


      Die Ports aus der Liste sind möglicherweise bereits vergeben, weshalb ich dazu rate, andere Ports zu nehmen.

      Wie du die Parameter anwendest findest du entweder weiter unten, oder im Startpost ;)

      Die Variable bindaddr muss in den settings.cfg geändert, oder als Parameter übergeben werden.

      Bei der ersten Variante solltest du wirklich mit "STRG+SHIFT+Q" quitten; eleganter ist zweiteres :)






      Teeworlds mit Parametern aufrufen:

      Das ganze kansnt du z.B. über eine Batch-Datei lösen, oder du erstellst eine Verküpfung, gehst dort auf Eigenschaften und fügst hinter Ziel ein Leerzeichen und

      Quellcode

      1. "bindaddr "localhost:PORT""
      ein.
      So sieht die gesamte Zeile in Ziel bei mir so aus:

      Quellcode

      1. D:\Windows\Users\Paddy\Desktop\teeworlds-0.6.2-win32\teeworlds.exe "bindaddr "localhost:1234""


      Um eine Batch-Datei zu bekommen, erstellen wir z.B. eine Text-Datei (.txt) und ändern die Endung in .bat (Falls die Endungen nicht angezeigt werden: ALT->Extras->Ordneroptionen->Ansicht->"Bekannte Dateierweiterungen ausblenden" -> Haken weg )

      Dort fügen wir folgenden Code ein:
      (Natürlich mit deiner Port-Nummer)

      Quellcode

      1. @echo off
      2. start "" "teeworlds.exe" "bindaddr "localhost:PORT""
      3. exit


      Dann die Datei noch im gleichen Order wie die Teeworlds.exe speichern.
      Nun hast du beim Ausführen der Batch-Datei den Parameter immer mit dabei ;)

      Gruß Pata

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Patafix ()

    • hoi, ich finde halt auch kaum server und es lädt ca. 5min bis es die die gehn ma findet, jetz hab ich das ma alles gemacht mit der .bat datei usw und jetz lese ich grad das es garnich geht bei botox :>
      naja aufjednfall passt der port der dann bei dem cmd teil steht überein aböör was is meine lokale ip adresse? xD kann ja nur die ipv4-adresse sein oder? die Verbindungslokale ipv6 adresse nimmt mein a1modem dings nich an wenn ich die da eingebe.

      plz help, giff servers volvo
    • Hey,

      ich gehe davon aus, dass du den letzten Schritt mit der Port-Weiterleitung im Router meinst.

      Leider kenne ich mich mit deinem Router nicht aus.

      Jedoch habe ich eine mögliche Anleitung gefunden: cdn3.a1.net/final/de/media/pdf…1_WLAN_BoxADB_AV4202N.pdf

      Auf Seite 38 befindet sich die Anleitung zur Port-Weiterleitung.

      (Für deine lokale Adresse würde ich einfach mal in der Übersicht der verbundenen Geräte schauen, dort werden die Adressen meistens angezeigt :)

      Gruß Pata
    • super danke, also hab die tw.bat da mitm port 5913 gemacht, bei der portweiterleitung auch 5913 UDP mit lokaler ip und im cmd steht auch 5913 wenn ich da nachkucke mit dem netstat ano aber iwie dauerts trzdem über 5min bis ich ma alle srv geladn habe, müsste das jetz nich eig extrem schnell gehn bzw normal halt oder?

      und mir is noch aufgefalln das da immer dasteht failed to load autoexec.cfg odaso ka vlt hat das damit was zu tun? :>

      danke für die schnelle antwort pata :>