Traefik
Übersicht
In dieser Anleitung verwenden wir Traefik als Reverse Proxy für den Zugriff auf das Remnawave Panel. Wir richten den Domainnamen auf unseren Server aus und konfigurieren Traefik. Traefik übernimmt selbst die Ausstellung der SSL-Zertifikate.
Sie benötigen einen registrierten Domainnamen, um fortzufahren.
Domain auf Ihren Server zeigen
Überprüfen Sie die IP-Adresse Ihres Servers. Es ist besser, eine statische IPv4-Adresse zu verwenden.
Jetzt müssen Sie Ihren Domainnamen auf diese IP-Adresse zeigen.
Zum Beispiel wird es my-super-panel.com -> 193.122.122.122 sein.
Es gibt zwei Möglichkeiten, dies zu tun:
- Einen DNS-Anbieter verwenden (z.B. Cloudflare, Google Cloud, etc.)
- Einen Registrar verwenden (z.B. Namecheap, etc.)
DNS-Anbieter
Wenn Sie Cloudflare verwenden, müssen Sie einen A/AAAA-Eintrag (für IPv4 bzw. IPv6) zu Ihren DNS-Einträgen hinzufügen.
Melden Sie sich hier bei Ihrem Cloudflare-Konto an und wählen Sie die gewünschte Domain.
Klicken Sie auf der linken Seite der Seite auf DNS und dann auf Records. Klicken Sie auf Create record.
Setzen Sie den Type auf A und den Name auf @.
Wenn Sie Subdomains verwenden möchten, sollten Sie den Subdomain-Namen (z.B. panel) im Feld Name eingeben.
Geben Sie die IP-Adresse Ihres Servers in das Feld IPv4 address ein und klicken Sie auf Save.
Jetzt müssen Sie eine Weile warten, bis die DNS-Einträge aktualisiert werden.
Es gibt einen großen Unterschied zwischen der gelben Wolke (Domain wird durch Cloudflare geleitet) und der grauen Wolke (Domain wird nicht durch Cloudflare geleitet) im Cloudflare-Kontrollpanel.
Wenn Cloudflare in Ihrer Region gut funktioniert, ist es besser, die Domain durch Cloudflare zu leiten. (Gelbe Wolke)

Einige DNS-Anbieter haben eine andere Oberfläche, aber der Gesamtprozess ist derselbe.
Traefik-Konfiguration
docker-compose.yml erstellen
Erstellen Sie eine docker-compose.yml-Datei im Verzeichnis /opt/remnawave/traefik.
mkdir -p /opt/remnawave/traefik && cd /opt/remnawave/traefik && nano docker-compose.yml
Fügen Sie die folgende Konfiguration ein.
services:
traefik:
image: traefik:latest
container_name: traefik
restart: unless-stopped
security_opt:
- no-new-privileges:true
networks:
- remnawave-network
ports:
- '0.0.0.0:80:80'
- '0.0.0.0:443:443'
environment:
- TZ=UTC
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik.yml:/traefik.yml:ro
- ./letsencrypt:/letsencrypt
- ./config:/config:ro
- ./logs:/var/log/traefik
networks:
remnawave-network:
name: remnawave-network
driver: bridge
external: true
Statische Konfigurationsdatei erstellen
Erstellen Sie eine statische Konfigurationsdatei namens traefik.yml im Verzeichnis /opt/remnawave/traefik.
cd /opt/remnawave/traefik && nano traefik.yml
Fügen Sie die folgende Konfiguration ein.
Bitte ersetzen Sie REPLACE_WITH_YOUR_EMAIL durch Ihre E-Mail-Adresse.
Überprüfen Sie die folgende Konfiguration, achten Sie auf gelb markierte Zeilen.
api:
dashboard: true
debug: true
entryPoints:
http:
address: ":80"
http:
redirections:
entryPoint:
to: https
scheme: https
https:
address: ":443"
serversTransport:
insecureSkipVerify: true
providers:
file:
directory: /config
watch: true
certificatesResolvers:
letsencrypt:
acme:
email: REPLACE_WITH_YOUR_EMAIL
storage: /letsencrypt/acme.json
httpChallenge:
entryPoint: http
log:
level: "INFO"
filePath: "/var/log/traefik/traefik.log"
accessLog:
filePath: "/var/log/traefik/access.log"
Dynamische Konfigurationsdatei erstellen
Erstellen Sie eine Datei namens remnawave.yml im Verzeichnis /opt/remnawave/traefik/config.
mkdir -p /opt/remnawave/traefik/config && cd /opt/remnawave/traefik/config && nano remnawave.yml
Fügen Sie die folgende Konfiguration ein.
Bitte ersetzen Sie REPLACE_WITH_YOUR_DOMAIN durch Ihren Domainnamen.
Überprüfen Sie die folgende Konfiguration, achten Sie auf gelb markierte Zeilen.
http:
routers:
remnawave:
rule: "Host(`REPLACE_WITH_YOUR_DOMAIN`)"
entrypoints:
- https
middlewares:
- remnawave-https-redirect
tls:
certResolver: letsencrypt
service: remnawave
middlewares:
remnawave-https-redirect:
redirectScheme:
scheme: https
services:
remnawave:
loadBalancer:
servers:
- url: "http://remnawave:3000"
Container starten
docker compose up -d && docker compose logs -f -t
Zugriff auf das Panel per IP einschränken
Wenn Sie den Zugriff auf das Panel per IP einschränken möchten, können Sie eine Middleware-Datei namens ip_allow_list.yml erstellen.
cd /opt/remnawave/traefik/config && nano ip_allow_list.yml
Fügen Sie die folgende Konfiguration ein.
Bitte ersetzen Sie REPLACE_WITH_YOUR_IP durch Ihre erlaubte IP-Adresse (oder IP-Bereiche in CIDR-Notation).
Überprüfen Sie die folgende Konfiguration, achten Sie auf gelb markierte Zeilen.
Wenn Ihr Domainname über Cloudflare proxied wird, müssen Sie die IP-Bereiche von Cloudflare in der excludedIPs-Liste angeben.
Cloudflare aktualisiert seine IP-Bereiche regelmäßig, daher empfiehlt es sich, die offizielle Cloudflare-Seite für eine aktuelle Liste zu verwenden.
http:
middlewares:
ip-allow-list:
ipAllowList:
sourceRange:
- "REPLACE_WITH_YOUR_IP"
ipStrategy:
excludedIPs:
- 73.245.48.0/20
- 103.21.244.0/22
- 103.22.200.0/22
- 103.31.4.0/22
- 141.101.64.0/18
- 108.162.192.0/18
- 190.93.240.0/20
- 188.114.96.0/20
- 197.234.240.0/22
- 198.41.128.0/17
- 162.158.0.0/15
- 104.16.0.0/13
- 104.24.0.0/14
- 172.64.0.0/13
- 131.0.72.0/22
Dann müssen Sie die Middleware ip-allow-list zur Konfigurationsdatei remnawave.yml hinzufügen.
nano remnawave.yml
Achten Sie auf die grüne Zeile — diese müssen Sie hinzufügen.
http:
routers:
remnawave:
rule: 'Host(`REPLACE_WITH_YOUR_DOMAIN`)'
entrypoints:
- https
middlewares:
- remnawave-https-redirect
- ip-allow-list
tls:
certResolver: letsencrypt
service: remnawave
middlewares:
remnawave-https-redirect:
redirectScheme:
scheme: https
services:
remnawave:
loadBalancer:
servers:
- url: 'http://remnawave:3000'
Öffentlichen Zugriff auf den Abonnementpfad erlauben
Damit das Abonnentsystem korrekt funktioniert, muss der Pfad /api/sub/ öffentlich zugänglich sein.
Gleichzeitig soll der Rest des Panels durch IP-basierte Einschränkungen geschützt bleiben.
Dazu müssen Sie zwei separate Router für dieselbe Domain definieren — einen für /api/sub/ (offener Zugang) und einen für alles andere (eingeschränkt).
Öffnen Sie die Datei remnawave.yml erneut:
nano /opt/remnawave/traefik/config/remnawave.yml
Und aktualisieren Sie die Router-Konfiguration wie folgt:
http:
routers:
remnawave-sub:
rule: "Host(`REPLACE_WITH_YOUR_DOMAIN`) && PathPrefix(`/api/sub/`)"
middlewares:
- remnawave-https-redirect
entrypoints:
- https
service: remnawave
tls:
certResolver: letsencrypt
remnawave-secure:
rule: "Host(`REPLACE_WITH_YOUR_DOMAIN`)"
entrypoints:
- https
middlewares:
- remnawave-https-redirect
- ip-allow-list
service: remnawave
tls:
certResolver: letsencrypt
middlewares:
remnawave-https-redirect:
redirectScheme:
scheme: https
services:
remnawave:
loadBalancer:
servers:
- url: "http://remnawave:3000"
Diese Konfiguration macht den Pfad /api/sub/ öffentlich zugänglich, während der Rest des Panels IP-eingeschränkt bleibt.
Panel im Browser öffnen
Öffnen Sie den konfigurierten Domainnamen im Browser und Sie sehen die Anmeldeseite.
