Zerotier-Netzwerk / Einen bestimmten lokal gehosteten Server öffentlich erreichbar machen?

  • Hallo,

    ich suche schon sehr lange nach einer Lösung.. :rolleyes:

    Problem: Ich habe eine kleine Web-Anwendung, derzeit auf meinem Netcup-Server, die hätte ich aber gerne lokal auf einem Raspberry Pi, trotzdem erreichbar "von außerhalb", was aber nicht geht, weil mein Internet über VF Gigacube geht, da gibt´s keine öffentliche IPv4 oder IPv6 (CG-NAT heißt das).

    Nun habe ich mir - nach dem Tipp eines Mitglieds hier, ich glaube TBT - per Zerotier eine Art VPN gebaut. RPi, mein PC, ein Handy und der Netcup RS "kennen sich untereinander", d.h., ich kann sie zumindest gegenseitig schonmal anpingen. Zerotier-IPs, 10.147.1.2 , 10.147.1.3 usw..

    Meine Theorie:

    Jetzt muss ich doch eigentlich "nur" dem Netcup-Server beibringen, dass er Anfragen an 37.120.x.y:portxy an ip-zerotier-intern:portxy durchreicht ?!

    Geht das? Wenn ja, wo bzw. wie?

    Oder habe ich mal wieder einen Denkfehler?

    Gruß, Kristian

    WH 8000 SE BF22, VPS 500G11s BW24, VPS1000 G11 JA24, RS1000 G11, VPS2000 ARM G11 SE OST25, RS2000 G12 Pro ADV25

    Ich lebe im Netzwerk, ihr findet mich unter der IP-Adresse: 127.0.0.1

  • Ich hab jetzt leider keine Ahnung welche implekation das CG-Nat mit sich bringt.

    Zumindest löse ich solche Probleme dadurch das ich von einem DSL Anschluss einen Wireguard Tunnel in Richtung VM aufbaue und dann einfach auf der VM einen Caddy laufen habe der per reverse_proxy directive einfach auf die interne IP verweist.

    Wie gesagt ich weiß nicht wie sich das mit CG-Nat verhält, ich hatte nur einmal das Glück das ich per Telekom 5G Router paar Tage online musste. Da hab ich nach paar Stunden einfach aufgegeben und den ipv4 public APN benutzt.

  • Jetzt muss ich doch eigentlich "nur" dem Netcup-Server beibringen, dass er Anfragen an 37.120.x.y:portxy an ip-zerotier-intern:portxy durchreicht ?!

    Geht das? Wenn ja, wo bzw. wie?

    Ja, genau so geht das.

    Code
    iptables -A FORWARD -i eth0 -p tcp --dport portxy -d ip-zerotier-intern -j ACCEPT
    iptables -t nat -A PREROUTING -i eth0 -d 37.120.x.y -p tcp --dport portxy -j DNAT --to-destination ip-zerotier-intern:portxy

    Ich hab für Ports und Adressen mal deine Beispiele von oben übernommen. Generell IP-Forwarding einschalten nicht vergessen.

  • Stimmt, sorry, da war ein Fehler, Ich habs korrigiert.

    Code
    iptables -A FORWARD -i eth0 -p tcp --dport portxy -d ip-zerotier-intern -j ACCEPT
    iptables -t nat -A PREROUTING -i eth0 -d 37.120.x.y -p tcp --dport portxy -j DNAT --to-destination ip-zerotier-intern:portxy
  • Geht es um eine Website, die zu Hause liegt und von überall (im Internet) erreichbar sein soll, oder einen anderen Dienst? Für eine Website könnte auch noch ein https://nginxproxymanager.com/ Docker Container in Frage kommen (den Du evtl da eh schon hast?), der Dir auf dem RS die Weiterleitung erledigt. Hierbei kannst Du auch noch die SSL Absicherung mit erledigen.

    (HTTPS) subdomain.domain.tld -> ZTIPAdresse:12345

    Aber Achtung: damit ist die Seite auf dem Raspi zu Hause halt auch von überall zu erreichen, d.h. es braucht eine Benutzerverwaltung und gute Passwörter, sowie regelmäßige (Sicherheits)Updates der Anwendung.

    Alternativ kannst Du Dich auch damit begnügen, dass Du die Anwendung nur im ZT Netz verwenden kannst.

    Ja, ich habe Dir damals ZT empfohlen. Ist auch immer noch klasse. Mittlerweile verwende ich auch teils https://www.netmaker.io/ , das ist "ähnlich aber anders" und läuft über Wireguard. Hier ist es auch sehr einfach möglich, In- und Egressgateways (in Dein lokales Netz) und Relays via WebGUI zu konfigurieren. Allerdings empfiehlt sich hierfür ein eigener Server (ich habe mir dafür nen VPS200 geholt) sowie eine eigene Domain (7€ bei meinem Domainprovider pro Jahr), da man für die vernünftige Verwendung einen * A Record benötigt.

    RS 2000 G12 Pro BW25 (8C EPYC 9645, 16GB, 1TB) | RS 500 G12 BW25 (2C EPYC 9645, 4GB, 128GB) | RS Cyber Quack (1C,2GB,40GB)

    3 Mal editiert, zuletzt von TBT (30. Oktober 2022 um 11:46)