Schabi_Alex schrieb:
misterunknown schrieb:
Ok, dann leitet dein Router Anfragen an die IP im internen Netz nicht weiter, sondern beantwortet sie selbst. Das heißt der Name müsste im internen Netz auch intern auflösen.
Naja er müsste die Anfrage doch ins Netzweiterleiten, da er ja nicht weiß auf welche IP die Domain zeigt. Oder merkt sich der das aus anderen Anfragen?
Die DNS-Auflösung macht ja nicht der Router, sondern der Client. Der Client bekommt also die öffentliche IP deines Routers als Ziel, und versucht sich aus dem internen Netz zu verbinden. Ich vermute, dass der Router erkennt, dass die Anfrage aus seinem internen Netz kommt, und daher keine Portweiterleitung macht, sondern dir sein Webinterface zeigt. Die Portweiterleitung funktioniert also vermutlich nur, wenn du direkt aus dem Internet kommst. Das könntest du verifizieren, indem du mal einen öffentlichen Proxy nutzt und versuchst aus deinem internen Netz die Nextcloud zu erreichen.
Welche variante wäre die einfachste umzusetzen?
Also wenn du nicht sowieso irgendeine Art "Server" in deinem privaten Netz hast, würde ich das Problem lokal lösen. Ich stelle mir da ein Skript vor, welches ausgeführt wird, wenn das Netzwerk up ist, und dann prüft, ob du dich in deinem Heimnetzwerk befindest. Wenn ja, setzt das Skript den Hostname in der /etc/hosts. Man müsste natürlich dafür sorgen, dass der Eintrag nach einem Reboot wieder rausfliegt.
Ich würde also:
/etc/hosts
nach /etc/hosts.d/00-default
kopieren
Skript schreiben, welches prüft, ob du dich in deinem Netzwerk befindest, und ggf. eine Datei /etc/hosts.d/50-nextcloud
anlegt, in der die statische Auflösung drin steht, und anschließend alle Dateien in der /etc/hosts
zusammenführt (cat /etc/hosts.d/* > /etc/hosts
)
service-Definition für systemd anlegen, welche obiges Skript nach dem Hochkommen des Netzwerks ausführt.
Vielleicht gibts ne elegantere Methode – so sollte es aber auch funktionieren.