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.