[Sockets] Port freischalten nötig, um zu connecten?
-
Hallo,
habe mir ein Programm geschrieben, das mit dem TCP/IP Protokoll über Sockets eine Verbindung zu einem anderen Rechner aufnimmt, auf dem der Client installiert ist. Das ganze läuft unter Windows XP Professional. Bisweilen habe ich mich noch über die lokale IP verbunden, soweit klappte noch alles, und die Verbindung konnte aufgenommen werden. bei einem entfernten PC gibt es jedoch Probleme, ich bin folgendermaßen vorgegangen:
1.) IP des Zielrechners mit www.wieistmeineip.de zuschicken lassen.
2.) Über Port 12345 versucht zu verbinden.Das ganze habe ich bei 2 Kollegen gemacht, ständig hat aber das Programm mit dem Fehlercode 10060 beendet, also ein Timeout. Wenn ich die Zielrechner über die Konsole per "ping" angepingt habe, erschien ebenfalls eine Zeitüberschreitung, obwohl die Rechner zu der Zeit online waren. Meine Frage:
Wenn der Zielrechner an einem Router hängt, muss dann an diesem Router extra Port 12345 freigeschalten sein, oder klappt das auch so? Müssen irgendwelche speziellen Einstellungen vorgenommen werden, oder gibt es sogar alternative Ports, bei denen nichts freigeschaltet werden muss?
Kollegen haben schon versucht Ports freizuschalten, bei beiden gab es jedoch damit Probleme, entweder weil der Router spinnt oder weil sie es nicht wussten. Umgekehrt habe ich es auch schon probiert, also Client auf meinem PC und Server auf fremden. Klappte auch nicht, ebenfalls Timeout. Einstellung zum Port freischalten habe ich auf meinem Router auch nicht gefunden.
Irgendwer eine Lösung?
Danke! MfG mikey.
-
tjo, woher soll der router ohne router-konfiguration auch wissen dass er Port 1234 gerade an deinen Rechner weiterleiten soll und nicht an evtl. vorhandene andere Rechner im Netzwerk? Selbiges Problem hat icq, emule, skype, etc. auch

icq und skype haben da allerdings Tricks eingebaut die das Problem umgehen (bei heise security steht da glaube ich was zu...)
-
icq und skype haben da allerdings Tricks eingebaut die das Problem umgehen (bei heise security steht da glaube ich was zu...)
Den Artikel habe ich mir schonmal durchgelesen, da geht es aber um etwas anderes. Dort wird erklärt, wie Skype ICQ & Co. Firewalls umgehen. Aber das möchte ich ja nicht. Ich möchte lediglich eine ganz einfache Verbindung mit nem anderen Rechner aufnehmen.
-
...und wenn nen router dazwischen ist bei dem kein port-forwarding eingerichtet ist, dann stellt er quasi ne Art Firewall dar.
Rechner A schickt Paket X an Rechner B (bei B auf Port 1234)
Nun hat der Besitzer von Rechner B nen Router.Der Router empfängt das Paket für Port 1234 und denkt sich: Schön, aber mir hat keiner gesagt wohin damit also schmeiss ichs einfach mal weg...
...Rechner B kriegt davon nichtmal was mit
-
..also ist es unbedingt erforderlich, dass der Zielrouter Portforwarding beherrscht?! Gibt es da keine einfacheren Wege? Kann ja ned sein, dass man wegen so etwas gleich sämtliche Schutzmaßnahmen außer Kraft setzen muss

-
zum nem server im web verbinden, der andere client macht dasselbe und holt sich von dort die infos.
So macht das zumindest icq wenn der andere hinterm router hängt. Dann wird die nachricht an den icq-server geschickt und der andere holt die sich quasi von da ab...
-
ähmm ... meistens is ja der 21 port freigeschlatet für ftp kann man sich da nich was einfallen lassen ? denn wenn man ein ftp programm hat (zumindest bei mir und ich hab auch eine fritzbox) nimmt der ja auch den port 21 ohne das er freigeschaltet werden muss odeR ?
gruß
-
Verbinden zu einem Server ist nicht das Problem. Wenn der eigene Rechner hinterm Router sitzt und die Verbindung aufbaut(!) weiss der Router welcher Rechner die Verbindung aufgebaut hat und daher auch wohin mit den zurückkommenden Daten.
Problem ist wenn der Router VOR dem Server sitzt. Dann hat der Server nicht die Verbindung aufgebaut und der Router weiss nix von evtl. für den Server ankommenden Daten.