Probleme bei der Domain Einrichtung eines Nextcloud-Servers mit DS-Lite-Tunnel und IPv6

Ein paar Daten Vorweg:
- 1und1 mit DS-Lite-Tunnel für IPv4, "normale" öffentliche IPv6
- Raspberry Pi 4
- Raspberry Pi OS based on Debain 12 → all packages up to date
- Nextcloud AIO v7.9.1 Docker Image
- Netzwerk Aufgliederung: FRITZ!Box 7490 → Switch → Raspberry Pi 

Liebe Community,

ich arbeite gerade daran, meinen eigenen Nextcloud-Server einzurichten. Mein Ziel ist es, von überall auf meine Daten zugreifen zu können, weshalb ich auch eine eigene Domain einrichten möchte. Die Domain habe ich bereits bei Porkbun erworben.

Allerdings stoße ich derzeit auf Schwierigkeiten bei der Einrichtung im Setup Schritt mit den folgenden Anforderungen: Please type in the domain into the input field below that will be used for Nextcloud in order to create a new AIO instance.

Hier erhalte ich wenn ich meine Domain angebe immer den folgenden Fehler:
The server is not reachable on Port 443. You can verify this e.g. with 'https.//portchecker.co/' by entering your domain there as ip-adress and port 443 as port.

Folgende Schritte habe ich bereits unternommen

  • FritzBox Portfreigabe von 443/TCP/UDP an den Raspberry Pi weiter gegeben

  • Auf der Porkbun Website meine Domain auf meine IPv6 Adresse zeigen lassen

  • Hier habe ich sowohl die IP probiert die bei curl ifconfig.me auf dem Pi rauskommt probiert als auch die IP die in der FritzBox angezeit wird. Welche IP ist hier richtig zu verwenden?

  • Mit ping samborn.de verifiziert, dass meine Domain erreichbar ist

  • (DDNS wollte ich später sobald es funktioniert einrichten, im Moment ist die IPv6 noch fest drin)

Probleme mit DS-Lite

In meinem Internetvertrag steht, dass mir keine öffentliche IPv4-Adresse zugewiesen wird, selbst auf Nachfrage.

Daher gehe ich davon aus, dass es mir nicht möglich ist, eine Typ-A IPv4-Weiterleitung zu meinem Raspberry Pi einzurichten. Ist diese Annahme korrekt?

Kann mir jemand dabei helfen, mein Problem zu lösen?

Hallo @Sabo und willkommen in der Community des Nextcloud-Benutzerforums.

Es gibt im Forum eine Menge Anfragen zu IPv6 und NC, dass ich dich bitten würde, doch selbst mal danach zu suchen.

Als beispielhaft würde ich diesen Thread sehen, der dich durch Links schon ganz schön gut weiterführt.

öhm… ich sag das immer, ist Routine (wie bei der Polizei, wenn sie den Zeugen fragt, wo er zur Tatzeit gewesen ist. Zumindest im TV) - am besten immer erst suchen… dann erspart man sich viel Mühe.
Obwohl ich natürlich sicher bin, dass du ganz ausführlich überall gesucht hast :wink:

Lass uns doch bitte hier wissen, wie erfolgreich deine Recherche war und welche Lösung dir geholfen hat.

1 Like

Vielen Dank für deine Antwork @JimmyKater!

Ich habe jetzt nochmal den restlichen Tag viele Dinge getestet.
Mittlerweile klappt die Portfreigabe, wie hier zu sehen ist:

Allerdings komme ich sonst immernoch nicht weiter :frowning:

Mir fehlt es an vielen Stellen - trotz vielem Nachlasen - noch an Versätnis.

Zum Beispiel beim Aktivieren von IPv6 für Docker wird folgendes gesagt:

… and set the fixed-cidr-v6 key to your IPv6 subnet. In this example we are setting it to fd12:3456:789a:1::/64.

Also habe ich das Subnet aus der FRITZ!Box ausgelesen und eingetragen.

Beim erstellen des Networks wird dann ohne Erklärung ein anderes subnet gewählt:

Then you can run sudo docker network create --subnet="fd12:3456:789a:2::/64" --driver bridge --ipv6 nextcloud-aio in order to create the network with ipv6-support.

(vergleiche die :1::/64 vs :2::/64)

Wenn ich hier beim network erstellen das gleiche subnet wie in /etc/docker/daemon.json nehme, erhalte ich den Fehler

Error response from daemon: Pool overlaps with other one on this address space

Wenn ich auch wie in dem Beispiel die letzte Ziffer um eins erhöhe das gleiche.

Ist es überaupt notwendig, mein richtiges IPv6 Subnet zu wählen oder kann ich auch einfach die Beispieldaten übernehmen?

Ich habe jetzt auch nochmal gecheckt, dass der DNS eintrag richtig weiter gegeben wird. Und das tut er richtig. (Screenshot drunter zeigt meine richtige ipv6)

Jetzt bin ich leider wirklich mit meinem Latein am Ende.

  • Meine Domain wird an die richtige IP weitergeleitet
  • Port 443 wird von außen unter der IP als geöffnet angezeigt.
  • Trotzdem funktioniert es nicht :frowning:

Kannst du denn deine Nextcloud intern über IPv6 erreichen?
Hast du mal versucht im Browser diese über IPv6 anzusprechen?

Wenn das nicht funktioniert, macht alles weitere keinen Sinn.

https://[1234:1234:1234:1234:1234:1234:1234:1234]/
Da muss natürlich die IPv6 deiner Nextcloud stehen!

Wie sieht es mit einem IPv6 Ping aus?
ping -6 1234:1234:1234:1234:1234:1234:1234:1234

Standardmäßig ist Docker für IPv6 vorbereitet. Allerdings musst du ein neues “network” anlegen und hier IPv6 mit konfigurieren. Auch sollte die Nextcloud diesen “network” zugewiesen sein.

Hallo Helmut,

ja intern kann ich die Nextcloud über IPv6 erreichen (siehe Bild)

Ping sieht auch gut aus (eigene IP ausgetauscht):

~ ❯ ping -6 1234:1234:1234:1234:1234:1234:1234:1234
PING 1234:1234:1234:1234:1234:1234:1234:1234(1234:1234:1234:1234:1234:1234:1234:1234) 56 data bytes
64 bytes from 1234:1234:1234:1234:1234:1234:1234:1234: icmp_seq=1 ttl=64 time=4.02 ms
64 bytes from 1234:1234:1234:1234:1234:1234:1234:1234: icmp_seq=2 ttl=64 time=1.75 ms
64 bytes from 1234:1234:1234:1234:1234:1234:1234:1234: icmp_seq=3 ttl=64 time=3.17 ms
...

Ich habe das ganze auch mal von meinem Smartphone aus getestet.
Dort funktioniert der Zugriff aus dem lokalen Netz auch.

Allerdings nicht aus dem mobilen Netz.
Wenn ich auf der FRITZ!Box “Exposed Host” für den Pi aktiviere geht es auch über das mobile Netz.

Ist die “Exposed Host” Einstellung ein Sicherheitsrisiko?
(Ich habe hier ja nicht explizit Ports freigegeben, trotzdem funktioniert es)

Mit dem Exposed Host kann ich sogar auf https://meine.eigene.url.de:8080 zugreifen und werde an die Nextcloud weitergeleitet.

Exposed Host gibt alle Ports für besagtes Gerät frei.
Kommt einem DMZ gleich und ist mit Vorsicht zu genießen.

Wenn es ohne dem also nicht funktioniert von extern, dann hast du etwas mit deinen Ports falsch eingestellt.
Nextcloud über https sollte ausschließlich über 445 erreichbar sein. Ggf. noch Port 80 für die Umleitung von http auf https.

Hier meinst du 443 oder?

Ja klar, 443. Sorry.

Aber ich glaube dein Problem könnte an den Ports liegen.
Die Fritzbox macht ein Portredirection NUR bei IPv4.
IPv6 Port werden NUR eins zu eins durch gereicht.

Würdest du deine Nextcloud über IPv4 ansprechen wollen, benutzt du die IPv4 deiner Fritzbox (Internet Zugang). Dies ist unabhängig von den IPv4 deiner Endgeräte. Die Fritzbox macht hier ein Redirection auf eines deiner Geräte im internen Netzwerk und ggf. auch eine Portredirection, z.B. extern Port 443 auf intern Port 8080.

Bei IPv6 funktioniert das aber anders.
Dein Gerät im internen Netzwerk bekommt von der Fritzbox ein IPv6 Präfix und hat sein eigenes Suffix. Beides zusammen ist die IPv6 mit der das Gerät hinter der Fritzbox auch von außen erreichbar wäre. Also hat jedes Gerät in deinem internen Netzwerk eine eigene IPv6, intern und auch extern (wenn freigeschaltet).

Und da ist der Knackpunkt und der wesentliche Unterschied.
Bei IPv6 macht die Fritzbox kein Redirection und kann Ports nur durchreichen/freigeben.

Wenn du deine Nextcloud auf Port 8080 betreibst, dann muss du auch Port 8080 in der Fritzbox eintragen und diesen Port extern auch mit angeben.

Bei der Portfreigabe in der Fritzbox für IPv6 kannst du die Anwendung, hier als beispiel https, angeben und einen Portbereich.
443 bis 443 heist dann, dass NUR Port 443 durch gereicht wird.

Bei der Portfreigabe für IPv4 ist hier der interne Port am Gerät und der externe Port nötig. Diese können hier bei IPv4 auch unterschiedlich sein.

Okay, ich habe jetzt alle Ports freigegeben, die von Docker auch verwendet werden

Jetzt kann ich auch https://meine.url.de:8080 übersetzen lassen.
Allerdings nur außerhalb des Netzwerks :smiley: sobald ich wieder im Heimnetz bin wird sich geweigert
https://[1234:1234:1234:1234:1234:1234:1234:1234]:8080 geht trotzdem weiterhin auch aus dem Heimnetz.

… Seltsam :thinking:

NUR den Port eingeben unter dem die Nextcloud arbeitet und bloß nicht Docker im Internet freigeben !!!

Extern funktioniert die IPv6 und die Domän?
Intern funktioniert die IPv6 aber NICHT die Domän?

Die Fritzbox hat einen DNS-Rebind-Schutz.
Die Domän rufst du im internen Netzwerk auf und die Anfrage geht erst mal nach “draußen”. Wird dann aber wieder mit der IPv6 auf ein internes Gerät geleitet.
Ein sog. Rebind und davor schützt dieser Mechanismus.

Trag hier die Domäne deine Nextcloud ein und starte die Fritzbox neu. Damit wird diese Domäne aus dem Schutz heraus genommen.

1 Like

Okay, vielen Dank der DNS Rebind Schutz hat geholfen. Jetzt kann ich auch meine URL intern übersetzen.


Ich muss leider ganz doof fragen: Nur Port 443 freigeben?

Auf welchem Port ist deine Nextcloud erreichbar?
Diesen Port eintragen.
Wozu die anderen?

Im Moment erreiche ich die Nextcloud nur über Port 8080.
Aber eigentlich will ich Sie über 443 erreichbar haben, damit man nicht immer den Port angeben muss.
Das kann ich ja nachträglich bestimmt noch ändern.


Das Deaktivieren vom DNS Rebind Schutz hat auch geholfen für das eingeben der Domain in den Einstellungen :partying_face:
Deswegen kam da immer ‘’ als IP zurück weil die FRITZ!Box das nicht übersetzt hat.

Jetzt gerade lade ich mir alle Docker Container runter.
Ich melde mich sobald das fertig ist.

Du kannst in Docker ein neues Network mit IPv4 und IPv6 anlegen.
Dieses verbindest du ausschließlich mit deiner Nextcloud. Deine Nextcloud legst du ganz normal auf Port 80 http und 443 https.
In der Fritzbox machst du eine Portfreigabe auf diese IPv6 mit 443, ggf. auch 80.
Somit gehen die externen Zugriff direkt auf den Docker Container Nextcloud.
Auch ist deine Nextcloud intern über diese IPv6 und auch IPv4 erreichbar.

Den IPv4 Bereich der Nextcloud sollte es, wie die IPv6, sonst in deinem Netzwerk nicht geben. Somit hast du quasi diese IPv6 und IPv4 isoliert.

Es funktioniert! :partying_face:

Vielen Dank @linux-helmut, ohne dich hätte ich das nicht hinbekommen!


Für Menschen die in der Zukunft ein ähnliches Problem haben:

  • Schaltet den DNS-Rebind-Schutz aus Das war die Ursache aller Fehler
  • Es reicht nur Port 443 freizugeben ins Internet, Port 8080 oder so wird nur für das lokale Konfiguration benötigt, da könnt ihr ja sowieso auf jeden Port zugreifen.
  • Die Docker IPv6 Anleitung kann man 1 zu 1 kopieren und muss Sie nicht auf das lokale Netzwerk anpassen
2 Likes

…und wir sind der Meinung:
DAS WAR SPITZE…
grafik

Es ist wirklich bewundernswert, wie engagiert und freundlich ihr selbst gegenüber Neulingen seid. Die Geduld, mit der ihr auf meine Fragen eingegangen seid, hat meine Erwartungen übertroffen. Eure Expertise und Bereitschaft, euer Wissen zu teilen, machen die Nextcloud-Community für mich jetzt schon zu etwas Besonderem.