Nextcloud nur über heimisches WLAN erreichbar trotz ddns.net-Adresse

Hallo zusammen,

bei meiner Nextcloud tritt folgendes Problem auf:
Browserzugriff via IP oder ddns.net-Adresse aus meinem heimischen WLAN funktioniert einwandfrei, sowohl am Laptop als auch am Handy.
Wenn ich mich allerdings in einem anderen WLAN befinde oder an meinem Handy die mobilen Daten aktiviere, erscheint beim ersten Aufrufen die Fehlermeldung “Adresse nicht gefunden”, bei allen weiteren Versuchen “Netzwerk-Zeitüberschreitung”.

Nextcloud v 25.0.2 ist auf einem Raspberry Pi installiert mit Raspberry Pi OS lite 64 bit, der RPi hängt über LAN an meiner Fritzbox dran. Port 443 für HTTPS ist freigegeben.

  • Betriebssystem: Linux 5.15.76-v8+ aarch64
  • Prozessor: Raspberry Pi 4 Model B Rev 1.5 (4 cores)
  • PHP Version: 8.1.13
  • MariaDB
  • Apache2
  • Die letzten Log-Meldungen sehen alle nahezu identisch aus:

[no app in context] Warnung: Host 192.168.178.38 was not connected to because it violates local access rules

GET /index.php/core/preview?fileId=37&x=250&y=250
from 192.168.178.22 by admin at 2023-01-11T07:33:41+00:00

  • Ich hatte kürzlich Nextcloud Office und den Collabora Document Server installiert und auch die App Brute-force settings. Nun sind diese drei aber wieder deaktiviert, Problem besteht weiterhin.
  • Habe im Internet (s. https://github.com/nextcloud/all-in-one/issues/188) recherchiert und gelesen, dass man in config.php die IP bei trusted_domains hinzufügen soll, in meinem Fall habe ich 192.168.178.38 hinzugefügt, hat nicht geholfen. Der zweite Tipp 'allow_local_remote_servers' => true, zu ergänzen brachte ebenfalls kein Erfolg (im Gegenteil, als ich beides stehen hatte, konnte ich nextcloud gar nicht mehr aufrufen, also beides wieder entfernt, damit es zumindest aus meinem WLAN geht :smile:)

Würde mich über ein paar Lösungsvorschläge freuen. Vielen Dank schon mal.
Markus

die trusted domain sollte eine URL sein, wenn du von außen (“anderes WLAN”) zugreifen möchtest.

Frage: war das überhaupt schon mal möglich bei deinem Setup?

Ja, ich konnte bis vor wenigen Tagen von überall darauf zugreifen.
In meiner Fritzbox hatte ich dem RPi immer die gleiche IPv4 zugewiesen. Anschließend habe ich über no-ip.com eine ddns.net-Adresse eingerichtet. Und das hatte wie gesagt bis vor kurzem noch hervorragend funktioniert.
Daher die Vermutung, dass es möglicherweise an Nextcloud Office oder Brute-force settings liegt, was ich ebenfalls vor 2 oder 3 Tagen aktiviert hatte.
OnlyOffice und den Document Server hatte ich auch kurzzeitig aktiviert. Da die ganzen Apps aber nicht so ganz wollten, wie ich wollte, habe ich sie alle wieder deaktiviert.
Möglich, dass dabei irgend etwas schief lief?
Hier und da findet man diese Host violates Warnung auch him Zusammenhang mit Document Server und OnlyOffice (z.B. Nextcloud 19 Onlyoffice 4.30 error:Host violates local access rules und Error when trying to connect (Host violates local access rules)). Aber ich weiß gar nicht, ob diese Warnung überhaupt etwas damit zu tun hat, dass ich nur noch aus dem heimischen WLAN zugreifen kann.

schon mal abgeschaltet?


Zumindest wieder deaktiviert in den Apps, nach dem ich sie (weil ich dachte, dass es bestimmt sinnvoll ist :smile:) aktiviert hatte.

Du schreibst von ddns.net-Adresse aber auch von 192.168.178.38 . Die ddns.net-Adresse muss natürlich auf eine weltweite IP-Adresse, genauer die weltweite IP-Adresse deines Routers verweisen. Warum kommt in den Logs die IP-Adresse aus deinem Fritzbox-Netz 192.168.178.0/24 vor? Port-Forwarding korrekt konfiguriert? Haste du mal den Zugriff von außen probiert? Was sagt die Namensauflösung intern und extern? Auch solltest du sowohl von innen als auch von außen immer nur den ddns.net-Namen verwenden. Stichwort Hairpinning und NAT Loopback.

1 Like

Oha, ich habe zwar nur halb verstanden, was du meintest :smile: aber mit ein bisschen Herumgeklicke klappt es jetzt tatsächlich! Ich glaube, das richtige Stichwort war weltweite IP-Adresse. Also ein dickes Danke an dieser Stelle.

In meiner Fritzbox > Internet > Freigaben tauchte nextcloud wie gewünscht auf. Ein Klick auf den Stift brachte folgendes zutage:


In meiner config.php habe ich dann hinter array noch # => 'IP-ADRESSE IM INTERNET', hinzugefügt. Über diese IP-Adresse kann ich jetzt auch mit mobilen Daten auf meine nextcloud zugreifen.
Bei no-ip.com habe ich dann die IP 192.168.178.38 ersetzt durch die IP-ADRESSE IM INTERNET. Nun klappt es also auch mit ddns.net.

Jetzt stellt sich mir aber doch noch folgende Frage:
Bleibt diese IP-ADRESSE IM INTERNET dauerhaft bestehen oder ändert sie sich (regelmäßig oder nach Neustart der nextcloud oder des Routers)? Das wäre dann sehr ärgerlich, weil ich dann ja jedes mal die config und no-ip anpassen müsste. Also falls sie sich regelmäßig erneuert: Was müsste ich machen, damit ich dauerhaft über ddns.net auf meine nextcloud zugreifen kann?

Leider nein. Die IP-Adresse kann und wird sich ändern. Ich denke du musst dort die ddns.net-Adresse deiner Nextcloud eintragen. Probiere das mal aus.

Und wenn das klappt: Hast du schon ein SSL-Zertifikat z. B. von Lets Encrypt?

Lese interessante Teile von dieser Anleitung.

Meine config sieht folgendermaßen aus:

array (
0 => '192.168.178.38',
1 => 'XXX.ddns.net',
2 => 'IP-Adresse aus dem Internet',
),

Wenn sich aber die IP-Adresse aus dem Internet regelmäßig ändert, dann wird die Weiterleitung durch no-ip auf meine ddns.net ja nicht mehr funktionieren. Wie ist es denn möglich, dauerhaften Zugriff von außerhalb zu bekommen?
Ein SSL-Zertifikat habe ich noch nicht. Wäre das die Lösung?

Du musst dir abgewöhnen überhaupt die interne IP-Adresse 192.168.178.38 oder die weltweite IP-Adresse a.b.c.d zu verwenden. Du musst - wenn alles läuft - von innen und von außen nur noch XXX.ddns.net nutzen. Das ist vor allen wichtig, wenn du z. B. die Nextcloud-App einsetzt.

Zur Verwendung von Lets Encrypt musst du am Router Port 80 und Port 443 weiterleiten, da Lets Encrypt Port 80 benötigt. Lese die angeführte Anleitung. Ohne SSL wirst du nicht glücklich. Und mit den IP-Adressen sowieso nicht.

1 Like

Genau das ist ja mein Ziel, alles über ddns.net laufen zu lassen :innocent:
Und mit Lets Encrypt wäre das möglich, verstehe ich das richtig?

Ja. Eigentlich sollte es auch jetzt schon ohne SSL mit http://XXX.ddns.net in Teilen gehen. Aber halte dich dort nicht zu lange mit irgendwelchen Fehlern auf. Nextcloud ist nicht für unverschlüsselte Kommunikationen gedacht. Und halte dich auch nicht mit selbstsignierten Zertifikaten auf. Das gibt am Ende auch nur unschöne Fehlermeldungen. Daher bitte gleich Richtung Lets Encrypt gehen.

Okay, hab mir die Anleitung gerade mal durchgelesen.
Was mir aktuell noch unklar ist: Ich soll ganz zum Schluss den domain name anpassen:

sudo certbot certonly --agree-tos --email user@email.com --webroot -w /var/lib/letsencrypt/ -d files.domain-name.io

Was ist denn mein domain name?

Dein Nextcloud-Name also der Subname XXX.ddns.net von deinem DynDNS-Anbieter. Denk daran den Port 80 durchzuleiten, da Lets Encrypt das benötigt. Sonst gibt es einen Fehler.

Okay, also

sudo certbot certonly --agree-tos --email user@email.com --webroot -w /var/lib/letsencrypt/ -d files.xxx.ddns.net.io

?