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

    RS 3000 G9.5 SE auch genannt OST22 L - 24 GB RAM, 8 Kerne, AMD Epyc, 960 GB SSD

    Webhosting 8000 SE BF22

  • 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
  • fehlt da nicht evtl. diese Regel:

    /sbin/iptables -t nat -I POSTROUTING -o eth0 -s zerotier-subnet -j SNAT --to-source 37.120.x.y

    Grüße / Greetings

    Walter H.


    RS, VPS, Webhosting - was man halt so braucht;)

    Einmal editiert, zuletzt von mainziman ()

  • 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 Ostern L OST22 (~RS "3000" G9.5) (8C,24GB,960GB) | RS Cyber Quack (1C,2GB,40GB)

    3 Mal editiert, zuletzt von TBT ()

    Gefällt mir 1