Nur Cloudflare-IPs zulassen: Anleitung für nginx, Apache und IIS
Wie Sie mit UFW, nginx, Apache und IIS auf Port 80 und 443 nur Cloudflare-IPs zulassen, die Liste aktuell halten und Direktzugriffe auf die Origin-IP stoppen.
Der Proxy von Cloudflare verbirgt die IP-Adresse Ihres Servers und bietet DDoS-Schutz, aber nur für Datenverkehr, der tatsächlich über Cloudflare läuft. [1] Wer die echte IP herausfindet, kann sich direkt mit dem Server verbinden und den gesamten Schutz umgehen. Dieser Ratgeber zeigt, wie Sie auf den Ports 80 und 443 nur Cloudflare-IPs zulassen und die Liste von Cloudflare aktuell halten: mit UFW und nginx oder Apache unter Ubuntu 24.04 sowie mit der Windows Defender Firewall und IIS unter Windows Server 2022 oder 2025.
Warum sich Cloudflare mit der Server-IP umgehen lässt
Anfragen, die direkt an die IP Ihres Servers gehen, laufen nie über Cloudflare, sodass keiner seiner Schutzmechanismen für sie greift. Ein DNS-Eintrag im Proxy-Modus verbirgt die Origin-IP, und Cloudflare bittet Sie, seine IP-Adressen auf dem Origin-Server zuzulassen, damit seine eigenen Anfragen durchkommen. [1] Die Empfehlungen von Cloudflare für die Netzwerkebene gehen noch weiter: Jeglicher Datenverkehr, der weder von Cloudflare noch von Partnern stammt, denen Sie vertrauen, soll explizit blockiert werden. [1]
Beschränken Sie nur die TCP-Ports 80 und 443 auf Cloudflare. SSH unter Linux und Remote Desktop unter Windows halten Sie weiterhin auf Ihre eigene IP-Adresse oder ein VPN beschränkt: Unsere Checkliste zur SSH-Härtung und der Ratgeber zum privaten WireGuard-Netzwerk behandeln beides.
Cloudflare stuft eine Liste erlaubter IP-Adressen als mäßig sicher ein, Authenticated Origin Pulls und Cloudflare Tunnel dagegen als sehr sicher. [1] Dieser Ratgeber kombiniert deshalb mehrere Prüfebenen:
| Ebene | Was geprüft wird | Werkzeuge |
|---|---|---|
| 1. Firewall | Quell-IP aus einem IP-Bereich von Cloudflare | UFW, Windows Defender Firewall |
| 2. Webserver | Echte Besucher-IP, unbekannte Hostnamen | nginx, Apache, IIS |
| 3. Authenticated Origin Pulls | Client-Zertifikat von Cloudflare | nginx oder Apache |
| Alternative: Cloudflare Tunnel | Keine offenen Web-Ports | cloudflared |
Eine Host-Firewall kann keine Datenflut aufhalten, die groß genug ist, um die Netzanbindung des Servers zu überlasten. Die EU-Tarife von StealthRDP enthalten einen DDoS-Schutz auf Netzwerkebene, die USA-Tarife nicht. Diesen Teil behandelt unsere Checkliste zum DDoS-Schutz für VPS.
Wo Cloudflare seine IP-Bereiche veröffentlicht
Die Seite „IP Ranges“ von Cloudflare unter www.cloudflare.com/ips ist als maßgebliche Liste gedacht. Sie verweist auf reine Textfassungen unter www.cloudflare.com/ips-v4 und www.cloudflare.com/ips-v6; dieselbe Liste ist auch über die Cloudflare-API abrufbar. [2]
Die Liste ändert sich durchaus. Laut ihrem Änderungsverlauf wurde 199.27.128.0/21 im Jahr 2017 entfernt, 104.16.0.0/12 im Jahr 2021 durch 104.16.0.0/13 und 104.24.0.0/14 ersetzt und 2405:b500::/32 im Jahr 2022 entfernt und 2023 wieder aufgenommen. [2] Fehlt in Ihrer Liste ein Bereich, werden die Anfragen blockiert, die Cloudflare aus diesem Bereich sendet [1]. Eine einmal eingefügte Liste veraltet also mit der Zeit.
Nur Cloudflare-IPs in UFW zulassen
Um in UFW nur Cloudflare-IPs zuzulassen, legen Sie für jeden Cloudflare-Bereich Regeln für die Ports 80 und 443 an und löschen dann die Regeln, die diese Ports für alle öffnen. UFW ist unter Ubuntu das Standardwerkzeug zur Firewall-Konfiguration und zunächst deaktiviert. Es kann einen Port für einen einzelnen Host oder ein einzelnes Netz öffnen, etwa mit sudo ufw allow proto tcp from 192.168.0.2 to any port 22, und beherrscht IPv4 und IPv6. [3]
Erlauben Sie SSH von Ihrer eigenen IP aus, bevor Sie UFW aktivieren oder eine Regel löschen. Sperren Sie sich aus, kommen Sie nur noch über die Konsole Ihres Anbieters wieder auf den Server.
1. SSH für Ihre eigene IP offen halten
sudo ufw allow proto tcp from 198.51.100.7 to any port 22
sudo ufw enable
sudo ufw status verbose2. Das Aktualisierungsskript anlegen
Das Skript lädt beide Listen herunter und bricht ab, wenn eine davon fehlerhaft aussieht. Es legt Regeln für neue Bereiche an, bevor es die Regeln für weggefallene Bereiche löscht, damit die Website während eines Laufs erreichbar bleibt. Eine Regel entfernen Sie mit ufw delete, gefolgt von der Regel selbst. [3] Außerdem schreibt das Skript die Bereiche in Dateien für nginx und Apache.
#!/usr/bin/env bash
# Rebuild Cloudflare's IP ranges for UFW, nginx and Apache.
set -euo pipefail
export LC_ALL=C PATH=/usr/sbin:/usr/bin:/sbin:/bin
STATE=/etc/cloudflare-ips.txt
NEW=$(mktemp)
trap 'rm -f "$NEW"' EXIT
v4=$(curl -fsS --max-time 30 https://www.cloudflare.com/ips-v4)
v6=$(curl -fsS --max-time 30 https://www.cloudflare.com/ips-v6)
printf '%s\n%s\n' "$v4" "$v6" | grep -E '^[0-9a-fA-F:.]+/[0-9]+$' | sort -u > "$NEW"
# Stop before touching anything if a list is missing or cut short.
if ! grep -q '\.' "$NEW" || ! grep -q ':' "$NEW" || [ "$(wc -l < "$NEW")" -lt 10 ]; then
echo "Cloudflare lists look wrong; nothing changed" >&2
exit 1
fi
touch "$STATE"
# Add new ranges first, then remove the ones Cloudflare dropped.
comm -13 "$STATE" "$NEW" | while read -r net; do
ufw allow proto tcp from "$net" to any port 80
ufw allow proto tcp from "$net" to any port 443
done
comm -23 "$STATE" "$NEW" | while read -r net; do
ufw delete allow proto tcp from "$net" to any port 80 || true
ufw delete allow proto tcp from "$net" to any port 443 || true
done
cp "$NEW" "$STATE"
if command -v nginx > /dev/null; then
{ sed 's/.*/set_real_ip_from &;/' "$NEW"; echo 'real_ip_header CF-Connecting-IP;'; } \
> /etc/nginx/conf.d/cloudflare-realip.conf
nginx -t && systemctl reload nginx
fi
if command -v apache2ctl > /dev/null; then
cp "$NEW" /etc/apache2/cloudflare-ips.lst
apache2ctl configtest && systemctl reload apache2
fi3. Skript regelmäßig ausführen und die offenen Web-Regeln entfernen
Führen Sie das Skript einmal aus und lassen Sie es danach täglich von cron starten:
sudo chmod 755 /usr/local/sbin/cloudflare-ips
sudo /usr/local/sbin/cloudflare-ips
echo '17 4 * * * root /usr/local/sbin/cloudflare-ips' | sudo tee /etc/cron.d/cloudflare-ipsLöschen Sie die offenen Web-Regeln erst, nachdem das Skript die Cloudflare-Bereiche eingetragen hat. Sonst ist die Website für alle offline.
Lassen Sie sich dann die Regeln nummeriert anzeigen und löschen Sie jede Regel, die Port 80 oder 443 noch für beliebige Quellen („Anywhere“) freigibt, Anwendungsprofile eingeschlossen. Verwenden Sie dabei dieselbe Schreibweise wie beim Anlegen der Regel. [3]
sudo ufw status numbered
# For example, if you once ran "ufw allow 80" and "ufw allow 443":
sudo ufw delete allow 80
sudo ufw delete allow 443
sudo ufw status numberedVon Docker veröffentlichte Ports umgehen UFW
Läuft Ihr Webserver in Docker mit veröffentlichten Ports, schützen ihn diese UFW-Regeln nicht.
Docker leitet den Datenverkehr eines veröffentlichten Ports schon in der nat-Tabelle um, bevor er die INPUT-Chain erreicht, die UFW verwendet. Für diesen Port werden die Regeln von UFW daher ignoriert. [4] Docker rät außerdem davon ab, seine Regeln zu bearbeiten, und wer die iptables-Verwaltung von Docker abschaltet, legt damit wahrscheinlich das Container-Netzwerk lahm. [4] Betreiben Sie den Webserver, der die Anfragen von Cloudflare annimmt, direkt auf dem Host, oder filtern Sie mit einer Firewall, die dem Server vorgelagert ist.
nginx und Apache: Besucher-IPs wiederherstellen und Direktaufrufe der IP abweisen
Beide Webserver können die Adresse von Cloudflare durch die des Besuchers ersetzen, die Cloudflare im Header CF-Connecting-IP mitsendet. [5] Das brauchen Sie, weil bei aktiver Firewall jede Anfrage von einer Cloudflare-Adresse kommt. Vertrauen Sie dem Header nur bei Anfragen aus den IP-Bereichen von Cloudflare; Cloudflare warnt, dass er sonst gefälscht werden könnte. [5]
nginx
Die Anleitung von Cloudflare für nginx nutzt das Modul realip: eine set_real_ip_from-Zeile pro Cloudflare-Bereich plus real_ip_header CF-Connecting-IP; die Bereiche müssen dabei aktuell bleiben. [5] Das Aktualisierungsskript schreibt diese Datei:
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
# ...one line for every Cloudflare range...
set_real_ip_from 2c0f:f248::/32;
real_ip_header CF-Connecting-IP;Weisen Sie als Nächstes Anfragen für Namen ab, die Sie nicht hosten, etwa eine Anfrage direkt an die IP: Cloudflare empfiehlt, nur die Werte im Host-Header zu akzeptieren, die Sie erwarten. [1] In nginx übernimmt das ein Default-Server. deny all weist jede Anfrage ab, die bei ihm ankommt [6], und die Direktive ssl_reject_handshake on lehnt in seinem server-Block TLS-Handshakes ab. Das Beispiel in der nginx-Dokumentation kombiniert sie mit default_server, sodass Handshakes für alle übrigen Namen scheitern. Die Direktive setzt nginx 1.19.4 oder neuer voraus. [7]
server {
listen 80 default_server;
listen [::]:80 default_server;
deny all;
}
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_reject_handshake on;
}Entfernen Sie default_server aus allen anderen server-Blöcken auf diesen Ports, aktivieren Sie die Datei und laden Sie nginx neu.
In nginx ließe sich die Liste von Cloudflare auch als allow-Zeilen mit abschließendem deny all hinterlegen, da die Regeln der Reihe nach geprüft werden, bis eine passt. [6] Nutzen Sie das nur auf einem Server, der keine Besucher-IPs wiederherstellt, und protokollieren Sie dort stattdessen $http_cf_connecting_ip. [5] Eine wiederhergestellte Adresse ist die des Besuchers, sodass eine Freigabeliste nur mit Cloudflare-Adressen echte Besucher abweisen würde; die Apache-Dokumentation weist für ihr eigenes Modul ausdrücklich darauf hin. [8]
Apache 2.4
Die Anleitung von Cloudflare für Apache nutzt mod_remoteip: Modul aktivieren, RemoteIPHeader CF-Connecting-IP setzen, die Cloudflare-Bereiche in /etc/apache2/conf-available/remoteip.conf als vertrauenswürdige Proxys eintragen, diese Datei aktivieren und im LogFormat „combined“ in /etc/apache2/apache2.conf %h durch %a ersetzen. [5] RemoteIPTrustedProxyList liest die Bereiche beim Start aus einer Datei, was gut zum Skript passt. [8]
RemoteIPHeader CF-Connecting-IP
RemoteIPTrustedProxyList /etc/apache2/cloudflare-ips.lstsudo a2enmod remoteip
sudo a2enconf remoteip
sudo apache2ctl configtest
sudo systemctl restart apache2Zwei Details sind wichtig. Ohne vertrauenswürdige Proxys vertraut mod_remoteip dem Header von jedem Host, sodass jeder seine Adresse fälschen könnte. [8] Und nach dem Austausch sehen Require ip und das Log-Feld %a die Adresse des Besuchers, während %{c}a und CONN_REMOTE_ADDR weiterhin die Cloudflare-Adresse enthalten, von der die Verbindung kam. [8] Lassen Sie die Cloudflare-Bereiche deshalb in der Liste der vertrauenswürdigen Proxys und in der Firewall stehen, und verwenden Sie Require ip nur für Regeln, die Besucher betreffen, etwa für eine Admin-Seite, die nur Ihre IP erreichen darf.
IIS unter Windows Server: Ports 80 und 443 auf Cloudflare beschränken
Auf einem Windows-VPS mit Windows Server 2022 oder 2025 erledigt die Windows Defender Firewall dieselbe Aufgabe, gesteuert über PowerShell. New-NetFirewallRule akzeptiert für -RemoteAddress IPv4- und IPv6-Subnetze in CIDR-Schreibweise, sodass eine einzige Regel alle Bereiche aufnimmt, und Set-NetFirewallRule ändert eine bestehende Regel. [9]
Lassen Sie die Remote-Desktop-Regeln unverändert und RDP weiterhin auf Ihre eigene IP beschränkt. Wer die falsche Regel deaktiviert, kann sich vom Server aussperren.
$ErrorActionPreference = 'Stop'
$ranges = foreach ($list in 'ips-v4', 'ips-v6') {
(Invoke-RestMethod "https://www.cloudflare.com/$list") -split "`n" |
ForEach-Object { $_.Trim() } | Where-Object { $_ -match '^[0-9a-fA-F:.]+/\d+$' }
}
$v6 = @($ranges | Where-Object { $_ -match ':' })
if ($ranges.Count -lt 10 -or $v6.Count -eq 0 -or $v6.Count -eq $ranges.Count) {
throw 'Cloudflare lists look wrong; nothing changed'
}
$name = 'Cloudflare HTTP and HTTPS'
if (Get-NetFirewallRule -DisplayName $name -ErrorAction SilentlyContinue) {
Set-NetFirewallRule -DisplayName $name -RemoteAddress $ranges
} else {
New-NetFirewallRule -DisplayName $name -Direction Inbound -Protocol TCP `
-LocalPort 80,443 -RemoteAddress $ranges -Action Allow
}Eine Zulassungsregel lässt jedes Paket durch, auf das sie zutrifft [9]. Jede andere aktive Regel, die Port 80 oder 443 für beliebige Adressen freigibt, hält diese Ports also weiterhin für alle offen. Lassen Sie sich diese Regeln anzeigen, prüfen Sie jede einzelne und deaktivieren Sie diejenigen, die nicht von Ihnen stammen:
Get-NetFirewallRule -Direction Inbound -Action Allow -Enabled True |
Where-Object { $_.DisplayName -ne 'Cloudflare HTTP and HTTPS' -and
(($_ | Get-NetFirewallPortFilter).LocalPort -match '^(80|443)$') } |
Select-Object Name, DisplayName
# After checking a rule: Set-NetFirewallRule -Name '<Name>' -Enabled FalseFür IIS 8.5 bis 10 beschreibt Cloudflare, wie Sie die echte Besucher-IP protokollieren: Sie fügen CF-Connecting-IP als benutzerdefiniertes Feld hinzu. Öffnen Sie dazu im IIS-Manager bei der Website den Bereich „Logging“, wählen Sie das Format „W3C“, klicken Sie auf „Select Fields“ und fügen Sie den Header hinzu. [5] Das ändert nur das Log; Ihre Anwendung sieht weiterhin die Adresse von Cloudflare. [5]
Authenticated Origin Pulls: die stärkste Prüfung am Origin-Server
Authenticated Origin Pulls (AOP) ergänzt die Verbindung um gegenseitige TLS-Authentifizierung (Mutual TLS): Cloudflare legt beim Verbindungsaufbau zu Ihrem Origin-Server ein Client-Zertifikat vor, und der Webserver prüft es. Voraussetzung ist der SSL/TLS-Verschlüsselungsmodus „Full“ oder höher. [10] Die globale Einrichtung verwendet ein Cloudflare-Zertifikat, das sich alle Cloudflare-Konten teilen. Damit ist nur belegt, dass eine Anfrage aus dem Netz von Cloudflare kommt. Für eine Prüfung, die an Ihr Konto gebunden ist, laden Sie mit AOP auf Zonen- oder Hostnamen-Ebene ein eigenes Zertifikat hoch. [10]
Laden Sie das Origin-Pull-Zertifikat von Cloudflare (.PEM) aus der Einrichtungsanleitung herunter und kopieren Sie es auf den Server; es ist nicht das Zertifikat der Cloudflare Origin CA. [10] Tragen Sie es im Webserver ein, ohne die Prüfung schon zu erzwingen. In nginx heißt das ssl_verify_client optional: nginx fordert ein Client-Zertifikat an und prüft es, falls eines gesendet wird. [7] Schalten Sie AOP dann in Cloudflare ein: Seite „Origin Server“, Registerkarte „Authenticated Origin Pulls“, Abschnitt „Global“. [10]
Erzwingen Sie die Prüfung erst, wenn AOP in Cloudflare aktiv ist und die Website weiterhin funktioniert. Verlangt der Origin-Server ein Zertifikat, das Cloudflare nicht sendet, bekommt jeder Besucher eine Fehlermeldung.
Funktioniert die Website weiterhin, erzwingen Sie die Prüfung: ssl_verify_client on in nginx, SSLVerifyClient require in Apache. [10]
ssl_client_certificate /etc/nginx/certs/cloudflare.crt;
ssl_verify_client optional; # change to "on" to enforceSSLCACertificateFile /etc/apache2/certs/origin-pull-ca.pem
# add this line to enforce:
SSLVerifyClient requireCloudflare Tunnel: überhaupt keine eingehenden Web-Ports
Cloudflare Tunnel schließt die Web-Ports, statt sie zu filtern. Der Daemon cloudflared auf Ihrem Server baut ausschließlich ausgehende Verbindungen zu Cloudflare auf, sodass die Website keine öffentlich routbare IP-Adresse braucht. [1] Steht der Tunnel, können die Ports 80 und 443 geschlossen bleiben. Cloudflare stuft Tunnel als sehr sicher ein und bietet ihn allen Kunden an; der Preis dafür ist ein weiterer Dienst, den Sie betreiben müssen. [1]
Wie Origin-IPs bekannt werden und wie Sie die Abschottung testen
Origin-IPs werden meist über DNS-Einträge ohne Proxy, einen Mailserver auf derselben Maschine oder den DNS-Verlauf bekannt, wie der Ratgeber von Cloudflare zum Schutz des Origin-Servers erklärt. [1]
- DNS-Einträge ohne Proxy („DNS only“), die die Origin-IP enthalten, SPF- und TXT-Einträge eingeschlossen.
- Mailserver auf derselben Maschine: Eine Mail an eine nicht existierende Adresse kommt als Bounce zurück und verrät die IP des Mailservers.
- DNS-Verlauf: Alte Einträge werden aufbewahrt und zeigen die IP, die Sie vor Cloudflare verwendet haben.
Cloudflare rät, die Origin-IP zu wechseln, sobald Ihre Website bei Cloudflare eingerichtet ist. [1] Tun Sie das erst nach der Abschottung, damit die neue Adresse nie offen im Netz steht. Jeder StealthRDP-Server, ob Linux-VPS oder Windows-VPS, hat eine dedizierte IPv4-Adresse. Ein IP-Wechsel kostet jeweils 5 € und wird über den Support beantragt.
Testen Sie dann von Ihrem eigenen Computer aus, den die Firewall von den Ports 80 und 443 fernhält:
# Straight to the origin IP: both should hang, then fail
curl http://203.0.113.10/
curl https://203.0.113.10/
# Through Cloudflare: should return your page
curl https://www.example.com/Ein Timeout ist das gewünschte Ergebnis. Eine 403-Seite oder ein TLS- oder Zertifikatsfehler bedeutet, dass die Anfrage den Webserver erreicht hat und die Firewall also noch offen ist.
Sobald AOP erzwungen wird, sollte eine Anfrage, die nicht über Cloudflare läuft, auch an der Zertifikatsprüfung scheitern. [10] Von Ihrem Computer aus stoppt die Firewall eine solche Anfrage, bevor sie so weit kommt; führen Sie diesen Test daher auf dem Server selbst aus:
curl -k --resolve www.example.com:443:127.0.0.1 https://www.example.com/nginx sollte mit Fehler 400 antworten, weil kein Client-Zertifikat gesendet wurde, und Apache sollte den TLS-Handshake verweigern. Sehen Besucher danach Fehlerseiten von Cloudflare, prüfen Sie, ob alle Bereiche eingetragen sind; unser Ratgeber zu 502 Bad Gateway behandelt weitere Fehler am Origin-Server hinter Cloudflare.
Häufige Fragen
Wo finde ich die IP-Bereiche von Cloudflare?
Cloudflare veröffentlicht sie unter www.cloudflare.com/ips, als reine Textlisten unter www.cloudflare.com/ips-v4 und www.cloudflare.com/ips-v6; dieselben Daten liefert auch die API von Cloudflare. Die Liste ändert sich von Zeit zu Zeit; aktualisieren Sie Ihre Kopie deshalb automatisch. [2]
Kann jemand Cloudflare mit der IP meines Servers umgehen?
Ja, wenn der Server Webverkehr von beliebigen Adressen annimmt. DNS-Einträge ohne Proxy, zurückgeschickte E-Mails (Bounces) und alte DNS-Einträge können die IP verraten. Cloudflare rät deshalb, Datenverkehr zu blockieren, der nicht von seinen Adressen kommt. [1]
Wie sehe ich hinter Cloudflare die echte Besucher-IP?
Cloudflare sendet sie im Header CF-Connecting-IP. Das realip-Modul von nginx und mod_remoteip von Apache können ihn auswerten, solange Sie dem Header nur bei Anfragen aus den IP-Bereichen von Cloudflare vertrauen. [5]
Blockiert UFW Docker-Ports?
Nicht bei Ports, die ein Container veröffentlicht. Docker leitet diesen Datenverkehr in der nat-Tabelle um, bevor er die Chains erreicht, die UFW verwendet; für diese Ports werden die Regeln von UFW daher ignoriert. [4]
Brauche ich für Cloudflare Tunnel offene Ports?
Eingehende Web-Ports sind nicht nötig. Der Daemon cloudflared baut ausschließlich ausgehende Verbindungen zu Cloudflare auf, sodass der Server für die Website keine öffentlich routbare IP-Adresse braucht. [1]
Quellen und Referenzen
- Protect your origin server — Cloudflare (abgerufen am 2026-11-03)
- IP Ranges — Cloudflare (abgerufen am 2026-11-03)
- Firewall — Ubuntu Server documentation (abgerufen am 2026-11-03)
- Packet filtering and firewalls — Docker Docs (abgerufen am 2026-11-03)
- Restoring original visitor IPs — Cloudflare (abgerufen am 2026-11-03)
- Module ngx_http_access_module — nginx (abgerufen am 2026-11-03)
- Module ngx_http_ssl_module — nginx (abgerufen am 2026-11-03)
- Apache Module mod_remoteip — Apache HTTP Server Project (abgerufen am 2026-11-03)
- New-NetFirewallRule — Microsoft Learn (abgerufen am 2026-11-03)
- Global authenticated origin pulls — Cloudflare (abgerufen am 2026-11-03)
Weiterlesen
VPS Control Panel Vergleich: 6 Tools für kleine Unternehmen
VPS Control Panel Vergleich: Preise und Funktionen von Plesk, cPanel, Webmin, Virtualmin und DirectAdmin, mit Entscheidungshilfe für kleine Unternehmen.
Hochverfügbare Server: Automatisches Failover auf dem VPS
Hochverfügbarkeit-Server auf VPS-Basis planen: Redundanz, Replikation, automatisches Failover, Monitoring und Vergleich mit der Cloud.
Server-Monitoring-Tools: 7 Uptime-Monitore im Vergleich
Server-Monitoring-Tools für Uptime-Prüfungen im Vergleich: gehostete Dienste und Self-hosted-Optionen wie Uptime Kuma, mit Hinweisen zu Alarmen.
