Java Programm auf Raspberry Pi server

Ok, ich habe jetzt mithilfe einiger Internet-Tutorials auf dem Pi Apache und Php installiert, kann im Heimnetztwerk darauf zugreifen, und das Testprogramm laufen lassen, und die index.html verändert sich auch. Nur möchte ich auch, dass man von anderen Standorten der welt darauf zugreifen kann(noch nicht in diesem frühen Stadium, aber wenn es soweit ist weiß ich es dann schonmal)

Auch damit kann dir geholfen werden. :slight_smile:
Schaue dir mal diesen beitrag hier an.
Raspberry Pi: DynDNS einrichten

Unter dieser Seite findest du noch viele weitere nützliche Anleitungen.

Viel Spaß
Steven

Dafür benötigt man mindestens 2 Dinge :

    1. : die aktuelle IP
    1. : in einem LAN mit NAT-Firewall : eine Portfreigabe/-weiterleitung (port forwarding)

Der zweite Punkt ist relativ einfach umgesetzt, und wer so wahnsinnig ist direkt ins Netz zu gehen ohne NAT und eine halbwegs gute Firewall braucht diesen überhaupt nicht.

Interessant ist der erste Punkt. Dafür gibt es zwei Lösungen :

  • a) static IP
  • b) DynDNS

Wenn du den Luxus hast dass dir dein ISP eine static IP anbietet (ich habe diesen zum Glück) kannst du auf diesen ganz normal eine Domain schalten oder, wenn bekannt, direkt die IP nutzen. Man bekommt, gerade mit Mail-Servern, nur leider meist das Problem dass der reverseDNS nicht geändert wird (werden kann ist hier nicht korrekt, denn technisch möglich ist es, nur es macht halt keiner).

Hast du eine normale DSL-Einwahl dann hast du in der Regel auch eine dynamische IP die bei jeder Einwahl geändert wird. Dann hilft nur noch etwas vom internen Netz dass sich regelmäßig bei einem Server meldet und die aktuelle IP durchgibt.
Warum verwendet man für solche Dienste Anbieter wie DynDNS ? Das ist dadurch begründet wie DNS funktioniert und „wie weit weg“ man von seinem Ziel ist.
Erklärung : setzt man eine neue Domain im Netz auf dauert es erstmal ewig bis überhaupt im „gesamten“ Netz bekannt ist dass es diese neue Domain überhaupt gibt. Meist werden nur die Meta-Infos wie die Nameserver übertragen. Aber teilweise auch vollständige Datensätze. Dadurch dauert es meist auch recht lange bis Änderungen an einer Domain im Großteil des Internets bekannt sind (meist 24h bis 48h). Zusätzlich haben die meisten ISPs noch DNScaches die meist noch seltener aktualisiert werden.
Was passiert jetzt : Ich frage deine Domain an und bekomme eine IP die schon ne Woche alt ist, dass bringt mir nichts mehr.
Dienste wie DynDNS tricksen hier ein wenig : es wird lediglich die top-level-Domain wie z.B. dyndns.org gecached. Sub-Domains müssen aber immer direkt beim NS von dyndns angefragt werden. Somit wird garantiert dass die Antwort auf ein DNS-Request immer aktuell ist und nicht durch irgendein Cache veraltet. Es geht halt schneller wenn sich ein Client bei einer Datenbank meldet und dort einen Wert aktualisiert der dann direkt abgefragt wird statt sich dieser mühsam durch Replikation durchs Netz arbeiten muss.

Alles etwas konfus zusammengewürfelt … aber etwas sollte doch stimmen.

Vielleicht noch als Beispiel : Ich habe eine Domain. Nehme ich Änderungen an dieser vor wird zwar der DNS-Record bei meinem Domain-Provider geupdated, da es aber jedem DNS gestattet ist meine aktuellen Domain-infos für ein sehr langes TTL-Timeout zu cachen dauert es halt bis diese Änderungen im gesamten Internet bekannt sind.

Wie geht das denn mit der Firewall? ist die von meinem Internetrouter schon vorhanden, oder muss ich noch irgendwas installieren?

Ich hab jetzt das DynDNS eingerichtet, aber der Zugriff von außerhalb funktioniert nicht, also habe ich das mit den Portfreigaben mal versucht, aber ich werde nicht schlau drauß: Welche Ports müssen bei “von Port” & “bis Port” angegeben werden?
Was muss bei an Computer angegeben werden(das ist ja der “Endzugreifer”, oder?)? die “An IP-Adresse” muss doch die des Raspberry sein, oder? Aber wie mache ich das, wenn sich die IP doch immer ändert? Und was muss bei “an Port” angegeben werden? Diese Dinge muss ich angeben, wenn ich bei meinem Router eine Portfreigabe erzeugen will.

Normalerweise genügt die Hardware-Firewall deines Routers. Ich würde dann noch Fail2Ban installieren. Das wehrt Angriffe von außen auf deinen RasPi ab.

Für einen Webserver von Port 80 bis Port 80. Routen musst du dann auf den Rechner, auf dem der Webserver läuft.

Genau so ist es.

Im Prinzip sollte ein Webserver standardmäßig seine Dienste auf Port 80 anbieten. Wenn er das auf Port 8080 macht, würde deine Domain so aussehen müssen: http://meine-domain.de:8080
Am Rechner, der den Webserver bereit stellt (RasPi), kann nun aber der Port 80 von einem anderen gaaanz wichtigen Programm bereits belegt sein. Dann kannst du den Webserver auf dem RasPi an einem anderen Port (z.B. 81) lauschen lassen. Dazu musst du deinen Webserver umkonfigurieren. In dem Fall musst du deinem Router dann auch sagen, dass er ankommende Anfragen an den Webserver (Port 80) auf den RasPi an Port 81 weiterleiten soll. Und schon funktioniert alles wieder.

*** Edit ***

Ganz nebenbei, würde ich nicht einen Apachen auf dem RasPi installieren. Lighttpd braucht viel weniger Resourcen und ist trotzdem PHP- und MySQL-fähig.
Falls du PHPMyAdmin installieren möchtest, solltest du auf jeden Fall darauf achten, dass dieses Programm nicht von außen erreichbar ist.

Was kann der Lighttpd denn mit einer MySQL-DB anfangen? Außer für „große“ Szenarien ist eine Konfiguration über MySQL doch gar nicht notwendig. Bei meinem Mailserver habe ich die Konfiguration teilweise in eine MySQL-Datenbank ausgelagert, um dort schnell neue Domains, Aliase oder Postfächer hinzufügen zu können. Aber bei einem Webserver? Da hat sich doch eigentlich eine Dateibasierte Konfiguration etabliert.

Oder meintest du die MySQL-Fähigkeit von PHP? Dazu ist der Webserver aber irrelevant.

Ja, stimmt, da habe ich mich blöd ausgedrückt. Ich meinte, dass er mit PHP zusammenarbeitet. Es gibt, wie für den Apachen, ein PHP-Modul, bzw. -Bibliothek.
Ich habe mir mal auf meinem Pi diese Konstellation für die Arbeit mit Contao installiert.

OK, danke jetzt funktioniert alles! Ich melde mich wieder, falls sich doch noch Probleme ergeben sollten melde ich mich wieder

Ich möchte hier noch mal ganz groß die Sicherheitswarnung rausgeben !
Wenn du deinen RasPi von außen zugänglich machst öffnest du damit auch jedem ein Einfallstor in dein privates Netzwerk und damit potentiell auf alle darin befindlichen (privaten) Daten.
Gut, nun ist es jetzt nicht ganz so einfach über einen RasPi ein LAN komplett zu übernehmen (wenn auch trotzdem möglich), und Linux ist meist auch recht gut abgesichert (schlicht auf Grund der großen Community statt wie bei M$ die paar Halbaffen im Keller), aber trotzdem sollte man mit sowas nicht leichtfertig umgehen.
Vor allem ist es auch immer eine Frage des ISP : auch wenn von den meisten ISPs keine Regeln bezüglich des private Hosting gibt bzw. wenn diese dann recht lasch sind so ist dein ISP weiterhin jederzeit berechtigt dir auf Grund unberechtigter Nutzung den Zugang einzustellen (auch wenn ich jetzt von so nem Fall noch nie gehört habe).

Es soll jetzt kein “lass das lieber die Profis machen” Banhammer sein, aber es macht halt leider im Verlauf dieses Threads den Anschein dass du dich mit der ganzen Sache nicht wirklich auskennen würdest. Da dann noch zusätzlich von innen ein Loch in die Firewall nach außen zu schlagen ist nicht sehr Ratsam.
Befasse dich lieber erstmal mit dem Thema und lese dich vorallem in den Bereich Sicherheit gut ein und nutze so lange VPN-Dienste wie Hamachi und Tungle oder OpenVPN und ähnlliches oder was es da auch immer alles noch so gibt.

Nicht das du dich nachher wunderst warum du einen Brief vom Anwalt wegen illegalem Filesharing im Kasten hast nur weil halt jemand deinen RasPi geknackt hat.