Skip to main content

Cloudflare Tunnel Einrichtung für Proxmox LXC Container

Diese Dokumentation beschreibt die Einrichtung eines Cloudflare Tunnels, um einen Service aus einem Proxmox LXC Container sicher über eine Domain erreichbar zu machen. Der Tunnel baut eine ausgehende Verbindung zu Cloudflare auf und benötigt daher keine Portfreigaben oder öffentliche IP-Adresse.

Architekturübersicht

Internet
   │
Cloudflare DNS
   │
Cloudflare Tunnel
   │
Proxmox Host
   │
LXC Container
   │
Interner Service (Webserver / Monitoring / API)

Voraussetzungen

  • Proxmox VE Server
  • LXC Container mit Internetzugang
  • Root Zugriff auf den Container
  • Domain in Cloudflare
  • Installiertes curl oder wget

1. System vorbereiten

Paketlisten aktualisieren:

apt update

Benötigte Tools installieren:

apt install curl wget -y

2. Cloudflare Tunnel installieren

Cloudflared Paket herunterladen:

wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb

Paket installieren:

dpkg -i cloudflared-linux-amd64.deb

Installation überprüfen:

cloudflared --version

3. Cloudflare Authentifizierung

Cloudflare Login starten:

cloudflared tunnel login

Der Befehl erzeugt eine URL. Diese URL im Browser öffnen und sich mit dem Cloudflare Account anmelden. Danach die gewünschte Domain auswählen.

4. Tunnel erstellen

cloudflared tunnel create proxmox-lxc-tunnel

Cloudflare erstellt dabei eine Tunnel-ID und speichert eine Credentials-Datei im Verzeichnis ~/.cloudflared.

5. Konfigurationsdatei erstellen

Konfigurationsdatei erstellen:

nano /etc/cloudflared/config.yml

Beispielkonfiguration:

tunnel: proxmox-lxc-tunnel
credentials-file: /root/.cloudflared/TUNNEL-ID.json

ingress:
  - hostname: status.example.com
    service: http://localhost:3001

  - hostname: panel.example.com
    service: http://localhost:8080

  - service: http_status:404

Die Hostnames müssen im Cloudflare DNS existieren oder werden automatisch erstellt.

6. DNS Route erstellen

DNS Eintrag automatisch erstellen:

cloudflared tunnel route dns proxmox-lxc-tunnel status.example.com

Cloudflare erstellt dabei automatisch einen CNAME Eintrag, der auf den Tunnel zeigt.

7. Tunnel testen

Tunnel manuell starten:

cloudflared tunnel run proxmox-lxc-tunnel

Wenn keine Fehler auftreten, ist der Tunnel korrekt konfiguriert.

8. Tunnel als Systemdienst installieren

Cloudflare Tunnel als Service installieren:

cloudflared service install

Service starten:

systemctl start cloudflared

Automatischen Start aktivieren:

systemctl enable cloudflared

Status prüfen:

systemctl status cloudflared

9. Funktionstest

Nach erfolgreicher Einrichtung sollte der Dienst über die konfigurierte Domain erreichbar sein.

https://status.example.com

Wichtige Hinweise

  • Cloudflare Tunnel unterstützt HTTP und HTTPS.
  • UDP Dienste wie TeamSpeak können nicht direkt über Cloudflare Tunnel betrieben werden.
  • Der Tunnel baut eine ausgehende Verbindung zu Cloudflare auf und benötigt daher keine Portfreigabe.

Empfohlene Infrastruktur

Proxmox VE
│
├── LXC Container
│   ├── NGINX Proxy Manager
│   ├── Uptime Kuma
│   └── Webservices
│
└── Cloudflare Tunnel
     │
     └── Domain Zugriff

Diese Architektur ermöglicht eine sichere Veröffentlichung interner Dienste ohne offene Ports im Router.