Container aus dem Internet erreichbar machen (mit Cloudflare Tunnel)
Container aus dem Internet erreichbar machen (mit Cloudflare Tunnel)

Container aus dem Internet erreichbar machen (mit Cloudflare Tunnel)

Das letzte Update war vor 22. August 2023 von Benedikt Schächner

Wir sind sehr erfreut, euch heute diese tolle Anleitung präsentieren zu können. Wie lange schon haben wir versucht, Container aus dem Internet erreichbar zu machen?

Wir wissen es nicht. Aber heute ist der Zeitpunkt gekommen, heute vor wenigen Minuten haben wir es geschafft.

Deswegen schreiben wir hier gleich die Anleitung und entführen euch in die tolle Welt von Cloudflare Tunnel-Installationen und deren Vorteilen!

Doch lasst uns nicht lange reden.

Am besten, wir starten jetzt gleich.

Wie immer machen wir zuerst alle Updates

sudo apt update
sudo apt upgrade

Anschließend müssen wir ein paar Installationen vornehmen.

sudo apt install curl lsb-release

Jetzt müssen wir noch die Cloudflare-Repository herunterladen.

curl -L https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-archive-keyring.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/cloudflare-archive-keyring.gpg] https://pkg.cloudflare.com/cloudflared $(lsb_release -cs) main" | sudo tee  /etc/apt/sources.list.d/cloudflared.list

Jetzt machen wir wieder ein Update:

sudo apt update

Und jetzt kommt die Installation vom eigentlichen Cloudflare Tunnel-System

sudo apt install cloudflared

Jetzt verbinden wir uns mit einem Cloudflare-Konto. Das machen wir mit dem folgenden Code.

cloudflared tunnel login

Hierbei sollte eine Ausgabe wie folgt kommen:

Please open the following URL and log in with your Cloudflare account:

https://dash.cloudflare.com/argotunnel?callback=https%3A%2F%2Flogin.cloudflareaccess.org%2FXXXXXXXXXX

Leave cloudflared running to download the cert automatically.

Falls sich die Url nicht öffnet, müssen Sie diese manuell öffnen.

Anschließend kommt die Meldung, wo es gespeichert wurde.

You have successfully logged in.
If you wish to copy your credentials to a server, they have been saved to:
/home/schaechner/.cloudflared/cert.pem

Tunnel erstellen

Jetzt erstellen wir den Tunnel. Beachtet, dass der TUNNELNAME durch einen von euch beliebigen Namen ersetzt werden muss.

cloudflared tunnel create TUNNELNAME
Tunnel credentials written to /home/pi/.cloudflared/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.json. cloudflared chose this file based on where your origin certificate was found. Keep this file secret. To revoke these credentials, delete the tunnel.


Created tunnel TUNNELNAME with id XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

Die ID ist auch wichtig und diese brauchen wir später auch nochmal!

Mit dem Code jetzt müssen wir den Tunnelname mit der Domain verbinden. Die Domain muss auch in Cloudflare registriert sein.

cloudflared tunnel route dns TUNNELNAME DOMAINNAME
2023-10-18T04:54:54Z INF Added CNAME DOMAINNAME which will route to this tunnel tunnelID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

Um zu testen, ob alles funktioniert können wir folgenden Code ausführen.

cloudflared tunnel run --url localhost:PORT TUNNELNAME

Der Port muss durch euren eigenen Port ersetzt werden und der Tunnelname durch den vorherigen festgelegten Tunnelname.

Sollten Sie diesen Code wieder beenden, funktioniert die Domain auch nicht mehr. Doch um das kümmern wir uns jetzt mit folgenden Codes.

Wir bearbeiten zuerst die Config-Datei.

sudo nano ~/.cloudflared/config.yml

In diese Datei muss folgender Inhalt rein:

tunnel: [TUNNELNAME]
credentials-file: /home/[USERNAME]/.cloudflared/[UUID].json

ingress:
    - hostname: [HOSTNAME]
      service: [PROTOCOL]://localhost:[PORT]
    - service: http_status:404

Alle Variablen müssen ersetzt werden.

[USERNAME] = Ihr Ubuntu Username

[UUID] = Ihr langer Code, der vorhin angezeigt wurde

[HOSTNAME] = Ihre Domain

[PROTOCOL] = Entweder „http“ oder „https“

[PORT] = Der Port, in dem die Instanz läuft

Nachdem wir das gemacht haben, können wir den Dienst als Service installieren, aktivieren und dann starten.

sudo cloudflared --config ~/.cloudflared/config.yml service install
sudo systemctl enable cloudflared
sudo systemctl start cloudflared

Schon müsste die Domain online erreichbar sein – sogar mit einem SSL-Zertifikat!

Gab es Probleme oder habt ihr Wünsche?

Schreibt es gerne unten in die Kommentare!

Ein Kommentar

  1. Pingback: Eigene Suchemaschine mit Docker erstellen (searXNG) • Schächner

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert