Raspberry Pi als Webserver von außen erreichbar machen

Ich versuche schon mehrere Tage meinen Raspberry Pi als Webserver von außen erreichbar zu machen. Irgendwie bekomme ich das nicht hin.

Habe Internet bei Deutsche Glasfaser und auch den Router von DG.

Habe mir jetzt bei ipv64 eine Domain erstellt.

Wie muss ich dann weiter vorgehen ??

In dem du dir verwertbare Informationen beschaffst und diese hier mitteilst. Denn woher sollen Supportende hier wissen:

  • welchen Router du von DG bekommen oder
  • ob du Dual-Stack, CGNAT oder DS-Lite hast

Also der Router ist der DG WLAN Plus Router.

Schicke hier mal ein paar Screenshots von der Oberfläche des Routers.

Musste Bild in Bild machen weil ich nur zwei Bilder rein stellen kann.

Na toll !!! Jetzt haste im zweiten Bild die Öffentliche IPv4-Adresse so anonymisiert, dass man nicht sieht ob es eine aus dem spezifischen IP-Adressbereich 100.64.0.0/10 ist. Dieser ist für Carrier Grade NAT (CGNAT) reserviert.

Diesbezüglich guckst du u.a. mal folgendes an:

Die öffentliche IPV4 Adresse ist so angelegt : 100.104.xx.xxx

Dann hast du CG-NAT → Bedeutet: Es wird mit direktem DynDNS für IPv4 schonmal nichts. Aber IPv64 hat ja auch dieses CDN oder den Cloudrouter…

Insbesondere der erste der beiden von mir oben mitgegebenen Links zeigt ja den Weg zu Lösungsansätzen. Insbesondere dem IPv64.net CDN.

Dazu musst du dich aber auch mit IPv6 vertraut machen, denn Voraussetzung fürs CDN ist eine Erreichbarkeit des RPi per IPv6.

Hab die Anleitung zum DG WLAN Plus gefunden. Keine Ahnung wie vollständig die ist, aber Wireguard oder andere VPN-Lösungen werden in dieser nicht erwähnt. Ohne VPN klappt es aber mit dem Cloud Router nicht. Dazu habe ich gesehen, dass du für die Kiste auch noch € 4,99 mtl. als Miete an DG abdrücken musst. Zudem ist es kein echter Glasfaser-Router sondern wird per CAT-Kabel mit dem ONT verbunden. Du kannst das Ding also an DG zurückgeben, die € 4,99 mtl. sparen und dir einen beliebigen anderen Router (z.B. eine Fritteuse) kaufen. Vorzugsweise ein Modell, das mehr kann als dieses Ding zu können scheint.

Also den Router zurück geben kann ich leider noch nicht. Eventuell gegen einen anderen tauschen.

Aber möchte es erstmal so versuchen.

Müsste nur erstmal wissen welche ipv6 Adresse ich verwenden muss. Wie finde ich da die richtige ?

Wer so fragt müsste vorher sehr wahrscheinlich noch sehr viel mehr wissen! Z.B. wie man die Suchmaschine der Wahl richtig befragt und Antworten zum Thema findet. Kurze Antwort:

Um einen Webserver per IPv6 erreichbar zu machen, müssen IPv6 im Router aktiviert, eine öffentliche IPv6-Adresse für den Server konfiguriert (z.B. mittels DHCPv6-PD oder SLAAC), die Router-Firewall für den Port (80/443) geöffnet und ggf. ein IPv6-fähiger DynDNS-Dienst eingerichtet werden. Im Gegensatz zu IPv4 ist kein NAT erforderlich, da jedes Gerät eine öffentliche IP erhält.
Quelle: Übersicht mit KI (Gemini)

Ein beherztes:

ip a

würde dir den Istzustand auf dem RPi anzeigen

So bin jetzt gerade bei den Portfreigaben.

Hier läuft das über IPv6 Firewall.

So müsste das doch korrekt sein, oder ? Die Remote IP Adresse ist jetzt so das alle externen Anfragen frei gegeben sind.

Schick doch erst einmal die Ausgabe von ip a auf dem RPi als Vorformatierter Text, damit die Konfiguration des RPi klar wird.

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.X.X.X/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 88:a2:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
    inet 192.168.X.XXX/24 brd 192.168.X.XXX scope global dynamic noprefixroute eth0
       valid_lft 78869sec preferred_lft 78869sec
    inet6 2a00:6020:af5a:XXXX:XXXX:XXXX:XXXX:XXXX/64 scope global dynamic noprefixroute 
       valid_lft 3584sec preferred_lft 3584sec
    inet6 fdaa:bbcc:XXXX:X:XXXX:XXXX:XXXX:XXXX/64 scope global dynamic noprefixroute 
       valid_lft 1814384sec preferred_lft 604784sec
    inet6 fe80::8aa2:XXXX:XXXX:XXXX/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 88:a2:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
    inet 192.168.X.XXX/24 brd 192.168.X.XXX scope global dynamic noprefixroute wlan0
       valid_lft 78866sec preferred_lft 78866sec
    inet6 fdaa:bbcc:XXXX:X:XXXX:XXXX:XXXX:XXXX/64 scope global dynamic mngtmpaddr proto kernel_ra 
       valid_lft 1814384sec preferred_lft 604784sec
    inet6 2a00:6020:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX/64 scope global dynamic mngtmpaddr proto kernel_ra 
       valid_lft 3584sec preferred_lft 3584sec
    inet6 fe80::8aa2:XXXX:XXXX:XXXX/64 scope link proto kernel_ll 
       valid_lft forever preferred_lft forever


Gut ist du hast nur eine GUA je Interface. Aber warum hast du zwei aktive Interfaces? eth0 undwlan0? Und warum anonymisierst du private IPv4-Adressen aus dem Klasse C-Netz? Die kommen identisch millionenfach auf der Welt vor und sind nicht im Internet routbar. Da muss nix anonymisiert werden.

Sind eth0 undwlan0 in unterschiedlichen Netzen oder womöglich noch im selben Netz unterwegs? Routing-Probleme sind da dann vorprogrammiert.

Der Raspberry ist über LAN und WLAN verbunden.

Läuft im selben Netz.

Macht keine Sinn, dafür aber womöglich Probleme. Deaktiviere das WLAN.

ok, habs jetzt ausgeschaltet.

Wie geht es denn nun weiter ?

Wenn ich jetzt die erste inet6 Adresse über den Browser aufrufe komme ich auf den Raspi dann zeigt er mir ja die Apache Seite an das es funktioniert.

wie kriege ich das aber von außerhalb aufgerufen ?

Du hast das ja schon eingerichtet in dem Router. Nur die Remote-Ports musst du weglassen und solltest aber auch sehr viel lesen über IP, Routing, Firewalls etc.
Das kann nämlich ganz schnell nach hinten losgehen

Und du musst DynDNS einrichten, denn dein v6-Prefix wird nicht statisch sein​:wink:

Du musst:

  1. eine Freigabe in der FW für die inet6 2a00:6020:af5a:... einrichten.
  2. dann aus dem Mobilfunknetz testen ob du danach dann mit dieser IP im Browser auf den Webserver Pi kommst. Klappt das kannst du
  3. eine DynDNS für diese IP-Adresse einrichten und kommst dann darüber as dem Mobilfunknetz auf den Webserver

Danach muss diese IP-Adresse vermutlich wegen Zwangstrennung noch regelmäßig aktualisiert werden. Jetzt ist die große Frage: kann das der DG WLAN Plus Router per Ipv6-Präfix-Update machen oder muss es der Pi selbst erledigen.

Falls letzteres: lies die Anleitungen → Raspberry Pi / Linux und nutze CURL und die crontab.

Nachtrag:
Prüfe vor dem Test aus dem Mobilfunknetz ob deine Mobilfunk-APN IPv6 aktviert haben. Ist in den APN nur IPv4 erlaubt wird der Test scheitern, auch wenn du alles richtig konfiguriert hast.

noch ein weiterer Nachtrag:
Im Browser müssen Ipv6-Adresse maskiert werden. Also in eckigen Klammern übergeben werden. So https://[2a00:6020:af5a:...] also. Sonst wird das nix.