Port forwarding

Tiim

Mitglied
Hallo zusammen

Ich möchte gerne auf meinem Computer gerne einen Server einrichten. Dieser ist aber nur im gleichen Lan zu erkennen, wenn ich meinen Router nicht so einstelle, dass er den Port des Servers weiterleitet. Genau das möchte ich jedoch verhindern, da dieser Server auch häufig in anderen Netzen laufen soll. Da der Port des Servers mir egal ist und sie auch wechseln darf, würde ich gerne ein Java Programm schreiben, welches die weitergeleiteten, offenen Ports erkennt, und den Server gleich auf diesen Port einstellt. Ist das überhaupt möglich mit Java, oder werde ich die Router trotzdem einstellen müssen?

Gruss Tim
 
Wahrscheinlich ist das auch per Java Programm möglich.
Aber warum selber programmieren?
Gibt doch per SSH gut funktionierende Portweiterleitungen.
 
Um zu erkennen welche Ports weitergeleitet werden, müsste deine Anwendung

a) die IP des Routers kennen/herausfinden
b) wissen wie man den Router nach den weitergeleiteten Ports fragt

Das ganze hat aber noch einen Haken: Du setzt damit voraus, dass jemand den Router konfiguriert, bevor er den Server in Betrieb nimmt. Denn Portweiterleitung benötigt immer die Ziel-IP sowie den Port. Deine Anwendung könnte also nur schauen, ob für die IP des Rechners, auf der die Anwendung läuft, eine Portweiterleitung bereits existiert. Das schränkt den "Vorteil" den das erkennen der Weiterleitung hätte schon ein. Mal ganz zu schweigen von der Komplexität die das herausfinden der Weiterleitung mit sich bringt. Das funktioniert bei jedem Router(Hersteller/Modell) etwas anders.

UPnP könnte eine Lösung sein. Doch wird das nicht von allen Herstellern/Modellen unterstützt, und wenn, dann ist das in den meisten Fällen im Router per Default deaktiviert.

Meine persönliche Meinung zu dem Thema:

Lass den Server immer auf dem selben Port laufen und schau, dass in allen Netzen in denen diese Serverkiste zum einsatz kommen soll, du

a) eine fixe IP hast
b) für diese IP eine feste Portweiterleitung eingerichtet ist

Denn: Einrichten musst du die Portweiterleitung so oder so. Da führt kein Weg dran vorbei wenn die Serveranwendung immer und überall zuverlässig funktionieren soll (UDP Hole-Punching hat auch seine schwächen...). Was würde dir das erkennen dieser Konfuguration dann bringen?!

- Alex
 
Dieser Server soll nur ab und zu laufen, seine Ip und den Port werden den Benutzern bekanntgegeben. Da die Ip addresse so immer wechselt, spielt es keine Rolle, ob auch der Port sich ändert. Ich hätte es am liebsten, wenn man den Server ohne irgendeine Konfiguration bei verschiedenen Netzten zum Laufen bringt. Desshalb wollte ich die offenen Ports erkennen um wie gesagt keine Routerkonfiguration vornehmen zu müssen.

/Edit: gibt es vlt auch Ports die per default offen sind?
 
Es reicht nicht am Router zu sagen "Mach Port 1234 auf". Eine Port-Weiterleitung ist immer nach dem Schema "Leite alles was an Port 1234 kommt an die Interne IP 1.2.3.4 Port 1234 weiter". Ergo kannst du maximal für DEINE AKTUELLE IP suchen ob was offen ist. Aber da da per default nix offen ist und deine IP immer mal wieder wechselt, ist das alles Käse. Du kommst um eine Konfiguration nicht drum rum. Ok, wie gesagt gibt's noch UPnP und UDP Hole-Punching. Aber da gibt's so viele Probleme/Nachteile, dass man nicht zu 100,00% sicher sagen kann das das immer funktioniert. Von daher: Manuell Konfigurieren.
 
Vielen dank. Ich habe das Prinzip des Port forwardings vorhin nicht genau verstanden ich dachte das sei wie eine Firewall, bei der man einfach ports öffnen muss..

@homer65 die IP hätte sich geändert, da der Server auf einem anderen Computer ausgeführt wird, welcher in einem anderen Netzwerk währe, da der Server nur gestartet wird, wenn er gebraucht wird, und zwar vom ersten Benützer, alle ändern verbinden sich dann zu dem.

Fazit: Ich werde wohl bei jedem Benützer den Router einstellen müssen, oder einen free webhoster finden, der .jar Dateien startet.
 

Zurück
Oben