Wie mach ich ein Gerät über Umwege aus dem Internet erreichbar?

Alex_Kl

Cadet 3rd Year
Registriert
Juni 2018
Beiträge
34
Ich habe vielleicht einen etwas besonderes Aufbau meines Netzwerkes. Leider bekomme ich das nicht so hin, wie ich mir das wünschen würde.
Folgendes Problem beschäftigt mich schon ein bisschen:
Ich habe eine Fritzbox die ganz normal als Router fungiert. Diese ist auch an dem Internet angeschlossen und ist für meine WG-Mitbewohner da. An dieser Fritzbox ist ein Router (Asus Router) von mir angeschlossen. Dieser hat ein eigenes Netzwerk über das meine Geräte verbunden ist. Somit kann ich bei mir im Netzwerk Sachen ausprobieren, ohne das ich das Netzwerk für die anderen beeinträchtige.
Ich habe nun an meinem Router einen kleinen Server dran hängen worauf Proxmox läuft. Da laufen zum Beispiel Dienste wie Pi-hole oder ein Nginx Proxy Manager drauf.

Nun möchte ich das ich den Proxy Manager aus dem Internet erreichen kann um auf meine Container zu verweisen. Dafür hab ich mir eine DynDNS erstellt und wollte diese mit dem Proxy Manager verbinden. Mein Hintergedanke war dabei das ich sagen kann, dass wenn ich zum Beispiel 'example.dyndns.net' aufrufe, dann werde ich auf den Container xy weitergeleitet der zum Beispiel eine Webseite hostet. Wenn ich jedoch 'vpn.example.dyndns.net' aufrufe, dann komm ich auf den Container um eine Wireguard Verbindung aufzubauen in das Netzwerk. So zum Sagen das ich über meine Subdomains regeln kann welchen Dienst ich ansprechen möchte.
In der Zukunft hab ich geplant einmal eine Bitwarden Instanz und eventuell eine VPN Verbindung einzurichten um auch extern das komplette Netzwerk nutzen zu können. Die anderen Dienste reichen mir eigentlich wenn diese nur local erreichbar bleiben.

Testweise hab ich mal einen Container erstellt und nur einen Apache Webserver drauf laufen lassen. Hab dann im Asus Router im "Port Forwarding" Punkt die IP des Apache Containers eingetragen. Auch diesen kann ich von außen nicht erreichen. Intern im Netzwerk funktioniert dies jedoch.

Bei mir scheitert es aber bereits mit der DynDNS Verbindung. Ich kann zwar eine einrichten, die zum Beispiel auf dem Proxy Manager läuft, dann wird jedoch nur die IP von der Fritzbox übermittelt und danach bekomme ich kein routing zu mir auf den Server. Das selbe ist es wenn ich einen DynDNS Dienst direkt auf der Fritzbox verbinde. Da bekomme ich die selbe IP.

Aktuell hab ich meinen Router als "Exposed Host" in der Fritzbox markiert in der Hoffnung das dies was verändert. Ich habe auch in der Fritzbox für den Router "Selbstständige Portfreigaben" aktiviert, dass falls ich einen Port übersehen hätte, der Router noch ne Chance hat trotzdem den Port zu öffnen. Außerdem sind in der Fritzbox die Ports 80 und 443 für den Router geöffnet und im Router (Asus Router) hab ich ebenfalls die Ports 80 und 443 für den Proxy Manager geöffnet.

In Proxmox war im Bereich "Datacenter" die Firewall deaktiviert, die einzelne Instanz aktiviert und in den einzelnen Containern deaktiviert. Es hat aber nichts verändert wenn ich die Firewall für die komplette Instanz auch deaktiviert habe.

Hätte jemand eine Idee wie ich dies verwirklichen könnte.
 

Anhänge

  • Netzwerk.png
    Netzwerk.png
    540,5 KB · Aufrufe: 761
Ich habe über die Fritzbox eine öffentliche IPV4. Die ist halt nur nicht statisch. Die Fritzbox fungiert als normaler Router für meine restlichen WG-Mitbewohner. Sie sollte nur für mich als art "Modem" fungieren, bzw meinem Router den Zugriff ins Internet ermöglichen.

Was meinst du genau mit welchen Modus? Wenn du die Router meinst, eigentlich fungieren beide als Router. Die Fritzbox fungiert als Router und hat ein eigenes Netzwerk und mein Router fungiert auch als eigenständiges Netzwerk, der halt der Fritzbox untergeordnet ist.
 
Das sind die forwarding die ich gemacht habe. Hab gerade bemerkt das, wenn ich die IP von der Fritzbox eingebe und den dazugehörigen Port eingebe, ich auf meine Testseite gelange. Dies funktioniert auch mittlerweile über die Dyndns.
Jedoch hat irgendwie das gerade keine Auswirkung wenn ich intern die Ip von der Webseite auf meinen Proxy Manager umänder.
Wie bekomme ich das hin das jede Anfrage an den Proxy Manager weiter geleitet wird. Auch so, das von außen nicht mehr den externen Port mit angeben muss. Das alles im Proxy Manager Verwalter wird.
Es hat auch noch nicht funktioniert das ich meine eigene Domain über einen CNAME Eintrag auf die DynDNS umleiten lasse. Das wäre auch noch das nächste Ziel von mir
 

Anhänge

  • FRITZ-Box-7520.png
    FRITZ-Box-7520.png
    303,3 KB · Aufrufe: 184
  • Screenshot 2024-04-18 224030.png
    Screenshot 2024-04-18 224030.png
    357,4 KB · Aufrufe: 168
  • Screenshot 2024-04-18 224413.png
    Screenshot 2024-04-18 224413.png
    418,1 KB · Aufrufe: 164
Port 80/443 öffnen von der Fritz.box an den Asus,
Port 80/443 öffnen von dem Asus an den Server.
NPM konfigurieren das dieser auch auf 80/443 läuft.
NPM sollte mit subdomains arbeiten.
service1.alex-ki.duckdns.org wird aufgerufen und npm leitet das intern weiter an apache-container;port.
Keine anderen Ports musst du öffnen. Dafür sind die Reverse-Proxies ja da (npm, nginx, caddy, traefik, ...)

Ich nutze leider traefik und nicht npm.
Wenn du von außen über die IP;PORT ran kommst dann übergehst du ja NPM und somit ist dies nicht richtig konfiguriert.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: DJMadMax, Fanchen, redjack1000 und eine weitere Person
Also ich kenn diesen Nginx Proxy Manager nicht, aber bei nem manuell eingerichteten Reverse Proxy, erstellst du für jede Proxy-Weiterleitung einen vhost mit dem zugehörigen FQDN (also 'pi.domain.de', 'nginx-pm.domain.de, 'usw.domain.de') in dem dann die Weiterleitung festgelegt wird. Ich hab mal ne alte nginx-config ausgebuddelt und mal an dein Beispiel oben angepasst, damit du ne Vorstellung hast, wie das aussehen könnte (Config ist aber unvollständig):

Code:
user  nobody;
worker_processes  2;

events {
    worker_connections  1024;
}

http {
    .
    .
    .
    server {
        # pihole http
        listen       80;
        server_name  pi.domain.de;
       
        # letsencrypt
        location ^~ /.well-known/acme-challenge/ {
            default_type "text/plain";
            root         /usr/share/nginx/html;
        }

        location = /.well-known/acme-challenge/ {
            return 404;
        }
       
        location ~ /.well-known {
            allow all;
        }

        location / {
            return 301 https://$server_name$request_uri;
            #return 301 https://$host$request_uri;
        }
        .
        .    # Error-Pages
        .
    }

    server {
    # pihole https
        listen       443 ssl;
        server_name  pi.domain.de;

        .
        .    # SSL-Krempel
        .  
        .
        .    # Header-Krempel
        .
        .
        .    # Proxy-Header-Krempel
        .
       
        location /         {proxy_pass http://192.168.1.3;}

    }

    server {
    # nginx proxy manager http

        listen       80;
        server_name  nginx-pm.domain.de;
       
        # letsencrypt
        .
        .
        .

        location / {
            return 301 https://$server_name$request_uri;
            #return 301 https://$host$request_uri;
        }
        .
        .    # Error-Pages
        .
    }

    server {
    # nginx proxy manager https

        listen       443 ssl;
        server_name  nginx-pm.domain.de;

        .
        .    # SSL-Krempel
        .
        .
        .    # Header-Krempel
        .
        .
        .    # Proxy-Header-Krempel
        .
       
        location /         {proxy_pass http://192.168.1.4;}

    }
}

Entscheidend für die Zuordnung sind quasi 'server_name ...' und 'location / {proxy_pass ....}'.

Der nginx-Proxymanager ist praktisch nur ne Web-Oberfläche, um obige Config-Bastelei zu ersparen.
 
Also mitlerweile klappt das soweit. Wie schaffe ich das nur das die Fritzbox alle Anfragen weiter leitet? Aktuell schaut das so aus das alex.dyndns.net zwar nicht durch geht aber wenn ich alex.dyndns.de:80 eingebe, geht die Anfrage durch.
 
Klar, das ich nur HTTP bzw HTTPS aufrufen kann wenn ich die Portfreigabe nur für diese Ports öffne. Die Fritzbox hat jedoch einen öffentlichen Port nach außen die intern dann auf Port 80 umgeleitet werden. In meinem Fall habe ich den Port 1133 für den internen Port 80 und 1135 für den Internen Port 443 bekommen.
Würde aber gerne meinen Webseitenaufruf starten können ohne das ich jedes mal den richtigen Port angeben muss.
 
Na dann musst du eben den externen Post 80 bzw. 443 weiterleiten, wie @tdbr geschrieben hat.
Anfragen an die beiden Ports sollten beim NPM ankommen, und je nach aufgerufener Subdomain kannst du dort dann einstellen, wohin weitergeleitet wird.

Edit: Verstehe dich nicht ganz. Laut deinem letzten Post müsste man Port 1133 aufrufen, um durchzukommen. Laut deinem Post davor muss man aber Port 80 aufrufen.
 
Das in dem Post davor war ein kleiner Denkfehler von mir. Ich habe von der Fritzbox nur einen bestimmten Bereich zur Verfügung gestellt bekommen wo ich meinen externen Ports dann aussuchen kann. Deswegen hab ich dann den Port 1133. Gibt es aber eine Möglichkeit das man das hin bekommt ohne das ich jedes mal den HTTP bzw. HTTPS Port angeben muss?
Ich denke das im Asus Router mittlerweile alles soweit gut konfiguriert ist. Denke dass das Problem an der Fritzbox liegt.

Hab gerade eben mal die Freigabe deaktiviert. Hat aber nichts gebracht was den Zugriff betrifft
 

Anhänge

  • Screenshot 2024-04-19 004939.png
    Screenshot 2024-04-19 004939.png
    62,8 KB · Aufrufe: 92
  • Screenshot 2024-04-19 004734.png
    Screenshot 2024-04-19 004734.png
    62,9 KB · Aufrufe: 92
Ich habe aber in der Fritzbox nur eine Port Range von 1132 bis 1151. Da dazwischen kann ich mir einen Port von außen aussuchen. Was anderes lässt die Fritzbox gar nicht zu. Sieht man im Screenshot direkt nach den internen Ports.
 
Nein, und der Zugriff von außen funktioniert ja schon, er kann nur die Standardports in der FB nicht forwarden. Wie ich schon schrieb, wahrscheinlich ist der Port von der FB selber in Benutzung wegen irgendnem Fernzugriffs-Kram.
 
Alex_Kl schrieb:
Ich habe aber in der Fritzbox nur eine Port Range von 1132 bis 1151. Da dazwischen kann ich mir einen Port von außen aussuchen. Was anderes lässt die Fritzbox gar nicht zu.
Im Normalfall stehen Ports 0 bis 65536 zur Verfügung. Warum ist das bei dir nicht so? ok 0 - 1024 sind außen vor, weil privilegiert.

Cu
redjack
 
  • Gefällt mir
Reaktionen: Raijin und qiller
Zurück
Oben