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
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
Lass uns doch bitte hier wissen, wie erfolgreich deine Recherche war und welche Lösung dir geholfen hat.
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)
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.
~ ❯ 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
...
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.
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.
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.
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
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.
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
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.