Remote Server für meine mehreren Notebooks

Hallo miteinander

Auf meinen Windows-Rechnern konnte ich mittlerweile Postgres 11 erfolgreich installieren und verwende zur Administration PG-Admin 4.

Nun zu meinen Zielvorstellungen. Ich möchte auf meinem Heim-PC die eigentliche Datenbank aufsetzen, in der automatisiert Daten aus dem Web eingespielt werden. Dies erfolgt über Python. Nun möchte ich auf meinem mobilen Notebook auf ebendiese Datenbank jederzeit zugreifen können, also auch wenn ich mich irgendwo auf dem Globus aufhalte.

In PG-Admin habe ich versucht anstelle eines “localhost” einen Remote-Server aufzusetzen. Das Einrichten ging noch, allerdings war ich verwundert dass sämtliche Datenbanken meiner localhost-Datenbank direkt 1:1 übernommen wurden. Ich hatte dieselbe Datenbank quasi doppelt, einmal im Remote-Server und einmal im lokalen Server den ich nach der Installation angelegt habe.

Wenn ich nun versuche den Remote-Server von meinem Notebook aufzurufen erhalte ich eine Fehlermeldung. Die Dateien postgresql.conf und pg_hba.conf habe ich entsprechend der Hinweise im Web geändert (listen_adresses war bereits auf “*” und in der pg_hba.conf habe ich die IPv 4 auf 0.0.0.0/0 und die IPv6 auf ::/0 gesetzt.

Gemäss dieser Seite (https://www.yougetsignal.com/tools/open-ports/) ist der Port 5432 auf meinem Heimrechner allerdings nach wie vor geschlossen. Ich habe versucht meine Avast Firewall dahingehend zu ändern den Port zu öffnen, komme mit den dortigen Einstellungen allerdings nicht klar. Um zu testen ob es überhaupt an der Firewall liegt habe ich die Avast Firewall als auch die Windows Firewall kurzfristig deaktiviert. Der Port 5432 ist weiterhin geschlossen.

Für eine ausführliche Anleitung wie ich die Datenbank mit einer solchen Remote-Einstellung aufsetzen kann wäre ich sehr dankbar. Habe mir als Alternative auch Cloud-Anbieter für Postgres angesehen, die sind mir aber grundsätzlich zu teuer.

Ideal wäre für mich eine Einstellung, mit der ich ausschliesslich gewissen Notebooks den Zugriff erlauben kann. Diese Notebooks sollten aber von jedwedem globalen Netzwerk darauf zugreifen können (also auch mit verschiedenen IP-Adressen).

Viele Grüsse
barg

Du must Deinen Router bitten, den Port 5432 an seine externe IP an die interne IP Deines PG-Servers zu forwarden. Bevor Du das tust, solltest Du Dich aber erst einmal in eine ganze Reihe von Dingen einarbeiten. Alternativ solltest Du Dich mit SSH und Portforwarding beschäftigen, aber wenn ich schon so Dinge wie Avast Tischbrandschutzmauer höre denke ich, damit wirst Du deutlich überfordert sein.

tl;dr

Such Dir einen Anbieter in der Cloud.

Hi

den Satz verstehe ich nicht “[…]den Port 5432 an seine externe IP an die interne IP Deines PG-Servers zu forwarden[…]”, von wo nach wo soll der Router den Port forwarden?

In welche Dinge sollte ich mich einarbeiten alternativ zu SSH und Portforwarding?

Eine brauchbare schrittweise Anleitung zu beschreiben scheint dich zu überfordern, mit deiner Antwort kann ich jedenfalls nicht viel anfangen.

Gruss
barg

Was ist denn die IP Deines PG-Servers? Neben 127.0.0.1 vermutlich noch eine 192.168.178.x, oder? Was für Adressen sind das, sind die im Internet routebar? Was ist die externe IP, mit der Dein Router im Internet ist? Was besagt ein Portscan auf dieser IP und dem Port? Wo kommt ein Verbindungsversuch auf dieser IP und dem Port 5432 an, auf Deinem PG-Server? http://lmgtfy.com/?q=ssh+portforwarding kennst Du schon?

“Eine brauchbare schrittweise Anleitung zu beschreiben scheint dich zu überfordern, mit deiner Antwort kann ich jedenfalls nicht viel anfangen.”

Wir sind hier nicht im Kindergarten, wo man Dich an die Hand nimmt. Und auch nicht im bezahlten Support. Wenn Du mit Hilfe zur Selbsthilfe überfordert bist ist das Dein Problem.

Unter Strich ist das eigentlich gar keine Postgres Frage, sondern ein Betriebssystem/Router/Netzwerk Problem.

Die einzige Stelle wo Postgres in’s Spiel kommt ist, die Verbindung nicht nur auf “localhost” zu erlauben, aber das sollte eigentlich mit den von Dir beschriebenen Änderungen funktionieren.

Der erste Test ob Postgres auf Deinem Heim-PC richtig läuft ist, dort lokal via “psql -h localhost” versuchen eine Verbindung aufzubauen (oder zur Not via pgAdmin, aber das verwende ich nicht, deswegen kann ich da nicht helfen). Wenn das funktioniert dann weiß Du immerhin, dass Postgres auf dem Heim-PC korrekt läuft.

Der zweite Test ist das Notebook im lokalen Netzwerk anzuschließen entweder über Kabel, oder WLAN. Wobei ich ein Ethernet Kabel vorziehen würde, da Du sonst auch noch die WLAN Konfiguration Deines Routers korrekt aufsetzen musst).

Die Erreichbarkeit des Heim-PCs (vom Notebook) kannst Du entweder mit “ping heim_pc_name”. Wenn das nicht erfolgreich ist musst Du in der Netzwerkkonfiguration Deines Routers die Sichtbarkeit der Rechner entsprechenden konfigurieren. Wenn das erfolgreich ist, dann kannst Du prüfen ob Du Dich auch zu der Postgres Instanz verbinden kannst. Auch hier ist der Test via “psql -h heim_pc_name …” der einfachste Test. Wenn das scheitert, dann ist das entweder ein Problem im Setup von Postgres (pg_hba.conf) oder ein Windows (Firewall) Problem. Das kann man aber an der Fehlermeldung die “psql” in dem Fall anzeigt unterscheiden.

Wenn der Test auch erfolgreich ist, dann kannst Du versuchen von “außerhalb” auf deinen Heim-PC zuzugreifen. Der PC selber wird aber im Internet gar nicht sichtbar sein, weil Dein DSL oder Kabel-Router (FritzBox oder ähnliches) noch davor sitzt. Diesem Gerät musst Du jetzt beibringen, dass Verbindungen von “außen” zulässig sind und dass Anfragen auf dem port 5432 des Routers an den Port 5432 des Heim-PCs weiterzuleiten sind. Vermutlich muss man da noch NAT oder etwas ähnliches konfigurieren - das übersteigt aber mein Wissen um Netzwerkkonfiguration. Zudem ist das vollständig abhängig davon was für ein Router das eigentlich ist.

Wenn das auch funktioniert, musst Du Dir auch noch überlegen wie die Deinen Router überhaupt erreichst. Normalerweise bekommt man bei den üblichen DSL Anschlüssen keine feste IP Adresse, Du müsstest also entweder immer vorher prüfen welche öffentliche IP Adresse Dein Router im Internet hat, oder einen sog. “Dynamic DNS” Service verwenden, oder Deinen Internet Anschluss auf eine feste IP Adresse umstellen (das kostet aber bei den meisten Providern zusätzlich).