# Port forwarding



## Tiim (16. Aug 2012)

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


----------



## homer65 (16. Aug 2012)

Wahrscheinlich ist das auch per Java Programm möglich.
Aber warum selber programmieren?
Gibt doch per SSH gut funktionierende Portweiterleitungen.


----------



## Tiim (16. Aug 2012)

Vielen Dank für die schnelle Antwort. Könntest du das genauer erklären? Ich kenne mich mit ssh nicht so aus.


----------



## homer65 (16. Aug 2012)

Hab ich selber auch noch nicht gemacht.
Habe aber schon von anderen gehört, das es recht einfach ist.
Eine Erläuterung findest du zum Beispiel hier:
https://www.bsdwiki.de/SSH_Port_Weiterleitung
Ma findet per Google sicher viele weitere.


----------



## Tiim (16. Aug 2012)

> In jedem Fall braucht man ein SSH-Account zu einem Server im Internet.


 Genau das geht bei mir nicht, da ich den Server direkt ins Netz stellen könnte, wenn ich einen solchen Rechner im i-netz hätte. ;-)


----------



## tuxedo (16. Aug 2012)

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


----------



## Tiim (16. Aug 2012)

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?


----------



## tuxedo (16. Aug 2012)

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.


----------



## homer65 (16. Aug 2012)

Habe noch nicht begriffen, warum sich die IP des Servers immer ändert.
Vielleicht kannst du uns das erklären.


----------



## Tiim (16. Aug 2012)

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.


----------



## vanny (16. Aug 2012)

Tiim hat gesagt.:


> ...oder einen free webhoster finden, der .jar Dateien startet.


 Wenn du da was vernünftiges findest gib mal bescheid


----------



## Tiim (16. Aug 2012)

Hmm scheint nicht so viele davon zu geben.. Ich versuch mal mit hamachi rumzuspielen..


----------

