Mit einem Port-80-Check prüfst du, ob dein Webserver über HTTP erreichbar ist - das Protokoll, das Browser standardmäßig verwenden, wenn du eine URL ohne "https://" eingibst. Ist Port 80 blockiert oder lauscht kein Dienst darauf, bekommen Besucher Verbindungsfehler und deine Website ist nicht erreichbar. Hier erfährst du genau, wie du das Problem diagnostizierst und behebst.
Inhaltsverzeichnis
Was Port 80 eigentlich macht
Port 80 ist der Standard-TCP-Port für
HTTP (Hypertext Transfer Protocol)
. Wenn ein Browser eine Verbindung zu
http://example.com
aufbaut, spricht er automatisch Port 80 der IP-Adresse dieses Servers an. Die Serversoftware - Apache, Nginx, IIS, Caddy oder eine andere - muss aktiv auf Port 80 lauschen, damit diese Verbindung zustande kommt.
Port 80 ist im offiziellen IANA-Portregister eingetragen und in RFC 9110 standardisiert. Er gehört zu den sogenannten "Well-Known Ports" - Ports im Bereich 0-1023 sind für systemnahe Dienste reserviert und erfordern unter Linux/macOS erhöhte Berechtigungen zum Binden.
Wie du prüfst, ob Port 80 offen ist
Es gibt mehrere Möglichkeiten, Port 80 zu prüfen - je nachdem, ob du lokal (direkt auf dem Server) oder remote (von einem anderen Rechner oder aus dem Internet) testest.
Mit telnet
Telnet ist der schnellste manuelle Test. Führe diesen Befehl von einem beliebigen Rechner mit Netzwerkzugang zum Zielhost aus:
telnet example.com 80
Wenn Port 80 offen ist und ein Webserver lauscht, siehst du einen leeren Cursor oder ein HTTP-Banner. Ist er geschlossen oder gefiltert, erhältst du "Connection refused" oder der Befehl hängt bis zum Timeout.
Mit curl
curl liefert mehr Details - du siehst die tatsächliche HTTP-Antwort:
curl -v http://example.com
Das Flag
-v
gibt eine ausführliche Ausgabe aus, einschließlich TCP-Handshake und Antwort-Headern. Eine erfolgreiche Verbindung zeigt
* Connected to example.com (93.184.216.34) port 80
. Ein Fehler zeigt
curl: (7) Failed to connect
.
Mit nmap
nmap ist der Goldstandard beim Port-Scanning. Um gezielt Port 80 zu testen:
nmap -p 80 example.com
Das Ergebnis zeigt einen von drei Zuständen: open (ein Dienst lauscht), closed (Port ist erreichbar, aber kein Dienst lauscht) oder filtered (eine Firewall verwirft Pakete und nmap kann den Zustand nicht bestimmen).
Mit PowerShell unter Windows
Test-NetConnection -ComputerName example.com -Port 80
PowerShells
Test-NetConnection
gibt ein sauberes
TcpTestSucceeded : True
oder
False
zurück, was sich gut für Skripte eignet. Eine vollständige Anleitung zur Port-Prüfung unter Windows findest du im Artikel
offene Ports unter Windows prüfen
.
Port 80 mit netstat untersuchen
Wenn du direkt auf dem Server arbeitest, zeigt dir
netstat
genau, welcher Prozess an Port 80 gebunden ist. Das ist das richtige Werkzeug, wenn du wissen möchtest: "Lauscht auf diesem Rechner überhaupt etwas auf Port 80?"
Linux / macOS
sudo netstat -tlnp | grep :80
Erklärung der Flags:
-
-t- nur TCP-Verbindungen -
-l- nur lauschende Sockets -
-n- numerische Adressen anzeigen (schneller, überspringt DNS-Lookups) -
-p- Prozessname und PID anzeigen
Eine typische Ausgabe sieht so aus:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1234/nginx
. Das bedeutet, nginx (PID 1234) lauscht auf allen Interfaces auf Port 80.
Auf modernen Linux-Systemen ist
ss
schneller und wird gegenüber
netstat
bevorzugt:
sudo ss -tlnp | grep :80
Windows
netstat -ano | findstr :80
Dieser Befehl listet alle Verbindungen mit Port 80 und deren PID auf. Um den Prozessnamen anhand der PID zu ermitteln (z. B. PID 4892):
tasklist /fi "pid eq 4892"
Port 80 durch Firewall blockiert - Diagnose
Eine Firewall-Blockierung ist der häufigste Grund, warum Port 80 von außen geschlossen erscheint, obwohl der Webserver lokal einwandfrei läuft. Die Blockierung kann auf drei Ebenen auftreten:
| Ebene | Wo prüfen | Werkzeug |
|---|---|---|
| OS-Firewall (Server) | iptables / ufw (Linux), Windows Defender Firewall |
iptables -L -n
oder Windows-Firewallregeln
|
| Cloud-Sicherheitsgruppe | AWS EC2 Security Groups, Azure NSG, GCP Firewall Rules | Eingehende Regeln in der Cloud-Konsole |
| Netzwerk-/ISP-Firewall | Router-ACL, ISP-seitige Port-Blockierung für Privatanschlüsse | ISP kontaktieren oder externen Port-Scanner verwenden |
iptables unter Linux prüfen
sudo iptables -L INPUT -n -v | grep 80
Siehst du eine DROP- oder REJECT-Regel für Port 80, ist das der Übeltäter. Um Port 80 mit ufw freizugeben:
sudo ufw allow 80/tcp
sudo ufw reload
AWS Security Groups prüfen
Wenn dein Server auf EC2 läuft, gehe in der EC2-Konsole zu Security Groups - Inbound rules. Du benötigst eine Regel, die TCP-Port 80 von
0.0.0.0/0
(oder deinem spezifischen IP-Bereich) erlaubt. Ohne diese Regel wird der gesamte Port-80-Traffic verworfen, bevor er überhaupt deine OS-Firewall erreicht.
Einen tieferen Einblick in die Port-Diagnose auf Linux-Seite bietet der vollständige Leitfaden zum Prüfen offener Ports unter Linux - mit detaillierter Behandlung von iptables, ufw, firewalld und nftables.
HTTP-Port antwortet nicht: Ursachen und Lösungen
Wenn der HTTP-Port nicht antwortet, lässt sich das Problem einer dieser Kategorien zuordnen:
-
Webserver läuft nicht
- Prüfe mit
systemctl status nginxodersystemctl status apache2. Falls er gestoppt ist, starte ihn:sudo systemctl start nginx. -
Webserver ist beim Start abgestürzt
- Prüfe die Logs:
sudo journalctl -u nginx --since "10 minutes ago". Ein Konfigurationsfehler oder ein Port-Konflikt wird dort protokolliert. -
Server ist nur an localhost gebunden
- Wenn deine Serverkonfiguration
listen 127.0.0.1:80stattlisten 0.0.0.0:80angibt, werden keine externen Verbindungen akzeptiert. Korrigiere die Bind-Adresse in deiner Serverkonfiguration. - Port 80 bereits belegt - Ein anderer Prozess hat Port 80 belegt, bevor dein Webserver gestartet ist. Identifiziere ihn mit netstat und stoppe ihn oder konfiguriere einen der Dienste auf einen anderen Port um.
-
SELinux oder AppArmor blockiert das Binden
- Auf RHEL/CentOS-Systemen kann SELinux verhindern, dass ein nicht standardmäßiger Prozess Port 80 belegt. Prüfe
ausearch -m AVC -ts recentauf Ablehnungen.
curl http://127.0.0.1
direkt auf dem Server aus. Wenn das funktioniert, externe Verbindungen aber fehlschlagen, liegt das Problem an einer Firewall- oder Netzwerkregel - nicht am Webserver selbst.
Port-80-Erreichbarkeit von außen testen
Tests vom eigenen Rechner können irreführend sein - du befindest dich möglicherweise im selben LAN wie der Server und umgehst dabei Firewallregeln, die für externen Traffic gelten. Um Port 80 so zu testen, wie es ein echter Besucher erleben würde, brauchst du einen externen Test.
Du kannst die HTTP-Antwort-Header deines Servers von außen mit unserem HTTP-Header-Checker-Tool abrufen. Es holt die Header von deiner URL und zeigt dir genau, was ein Browser empfängt - Statuscodes, Servertyp, Weiterleitungsketten und mehr - alles aus externer Perspektive.
Weitere externe Optionen:
- Online-Port-Scanner - Dienste wie portchecker.co oder canyouseeme.org ermöglichen es dir, eine IP und Portnummer einzugeben und von deren Servern aus zu testen.
-
Von einem VPS oder einer Cloud-Shell
- Starte eine kostenlose Cloud-Instanz in einer anderen Region und führe dort
nc -zv your-server-ip 80aus. -
Mit nc (netcat) lokal
-
nc -zv example.com 80liefert ein schnelles offen/geschlossen-Ergebnis, ohne dass auf den meisten Linux/macOS-Systemen etwas zusätzlich installiert werden muss.
Port 80 vs. Port 443: Wann welcher zählt
Port 443 ist für HTTPS zuständig (verschlüsseltes HTTP über TLS). Die meisten modernen Websites leiten den gesamten Port-80-Traffic sofort auf Port 443 um. Dennoch bleibt Port 80 aus mehreren Gründen relevant:
- ACME/Let's Encrypt HTTP-01-Challenges - Let's Encrypts certbot verwendet Port 80, um den Domain-Besitz zu verifizieren. Ist Port 80 blockiert, schlägt die Zertifikatsausstellung fehl.
- Interne Dienste ohne TLS - Viele interne Tools, Monitoring-Agenten und Microservices kommunizieren innerhalb eines privaten Netzwerks über einfaches HTTP auf Port 80.
- Legacy-Clients und IoT-Geräte - Manche eingebetteten Geräte und ältere Clients unterstützen kein TLS und sind auf Port 80 angewiesen.
- Weiterleitungsinfrastruktur - Auch wenn du alles über HTTPS auslieferst, musst du Port 80 offen halten, um HTTP-Anfragen abzufangen und weiterzuleiten - andernfalls erhalten Nutzer einen Verbindungsfehler.
Sieh sofort, was Port 80 tatsächlich zurückgibt
Unser HTTP-Header-Checker ruft die Live-Antwort von jeder URL ab, damit du bestätigen kannst, dass Port 80 offen ist, Weiterleitungsketten prüfen und die genauen Statuscodes sehen kannst, die dein Server sendet - ganz ohne Kommandozeile.
HTTP-Header jetzt prüfen →
Unter Linux führe
sudo ss -tlnp | grep :80
oder
sudo netstat -tlnp | grep :80
aus. Beide Befehle zeigen den Prozessnamen und die PID, die an Port 80 gebunden sind. Unter Windows nutze
netstat -ano | findstr :80
, um die PID zu ermitteln, und dann
tasklist /fi "pid eq [PID]"
, um den Prozessnamen zu finden. Typische Belegungen sind nginx, apache2, IIS und Node.js-Server.
Verwende dieselben netstat- oder ss-Befehle, filtere aber nach 8080 statt 80:
sudo ss -tlnp | grep :8080
unter Linux oder
netstat -ano | findstr :8080
unter Windows. Port 8080 ist ein verbreiteter alternativer HTTP-Port, der von Entwicklungsservern, Tomcat, Jenkins und Proxys genutzt wird. Wenn dort bereits etwas gebunden ist, musst du es stoppen oder deinen neuen Dienst auf einen anderen Port konfigurieren.
Auf dedizierten Webservern und VPS-Instanzen ja - Port 80 ist dort typischerweise offen und erwartet. Bei privaten Internetanschlüssen blockieren viele ISPs eingehenden Port-80-Traffic, um zu verhindern, dass Kunden öffentliche Server von zu Hause aus betreiben. Bei Cloud-Instanzen ist Port 80 in der Sicherheitsgruppe oft standardmäßig geschlossen, bis du explizit eine eingehende Regel hinzufügst, die ihn freigibt.
Von außerhalb des Servers verwende
nmap -p 80 your-server-ip
oder
telnet your-server-ip 80
. Direkt auf dem Server nutze
ss -tlnp | grep :80
, um zu bestätigen, dass etwas lauscht. Prüfe außerdem deine Firewallregeln - unter Linux mit ufw führe
sudo ufw status
aus, um zu sehen, ob Port 80 als erlaubt aufgeführt ist.
Unter Linux mit ufw:
sudo ufw allow 80/tcp
. Direkt mit iptables:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
. Unter Windows füge in der Windows Defender Firewall eine eingehende Regel für TCP-Port 80 hinzu. Auf einem Cloud-Server füge in deiner Sicherheitsgruppe oder Netzwerksicherheitsgruppe eine eingehende Regel hinzu, die TCP-Port 80 aus dem gewünschten Quellbereich erlaubt.
Port 80 ist offen, wenn ein Webserver so konfiguriert ist, dass er HTTP-Traffic bedient - was der Standard für jede öffentlich zugängliche Website ist. Er bleibt auch auf Servern offen, die HTTP auf HTTPS (Port 443) umleiten, da die Weiterleitung selbst das Annehmen der initialen Port-80-Verbindung erfordert. Zertifikatserneuerungstools wie Let's Encrypt certbot benötigen Port 80 außerdem für HTTP-01-Domain-Validierungschallenges.
Öffne die Windows Defender Firewall mit erweiterter Sicherheit, klicke auf "Eingehende Regeln" und dann auf "Neue Regel". Wähle "Port", wähle TCP, gib 80 als spezifischen lokalen Port ein, wähle "Verbindung zulassen", wende die Regel auf alle Profile an (Domäne, Privat, Öffentlich) und vergib einen Namen für die Regel. Alternativ führe folgenden Befehl in einer erhöhten PowerShell-Eingabeaufforderung aus:
New-NetFirewallRule -DisplayName "HTTP Port 80" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
.
Ja, unter Linux und macOS ist Port 80 ein privilegierter Port (Ports 0-1023 erfordern Root-Rechte oder die Capability CAP_NET_BIND_SERVICE zum Binden). Das bedeutet, ein normaler Benutzerprozess kann ohne erhöhte Berechtigungen nicht auf Port 80 lauschen. Webserver wie nginx und Apache werden typischerweise als Root gestartet, um Port 80 zu belegen, und wechseln dann für die eigentliche Anfrageverarbeitung zu einem Benutzer mit niedrigeren Rechten. Unter Windows gibt es keine vergleichbare Einschränkung für Port 80.
Port 80 (HTTP) wird anstelle von Port 443 (HTTPS) in Szenarien eingesetzt, in denen TLS nicht notwendig oder praktikabel ist - etwa bei internen Microservices in einem vertrauenswürdigen privaten Netzwerk, lokalen Entwicklungsumgebungen oder IoT-Geräten ohne TLS-Unterstützung. Port 80 ist außerdem für Let's Encrypt HTTP-01-Zertifikatschallenges erforderlich. Für jede öffentlich zugängliche Website wird Port 443 mit TLS dringend empfohlen, während Port 80 nur für Weiterleitungen offen gehalten werden sollte.
Nein, es sind unterschiedliche Ports. Port 80 ist der von der IANA zugewiesene Standard für HTTP und wird von Browsern automatisch verwendet, wenn kein Port angegeben ist. Port 8000 ist ein inoffizieller alternativer Port, der häufig von Entwicklungsservern genutzt wird - Pythons
python -m http.server
verwendet standardmäßig Port 8000, ebenso wie Djangos Entwicklungsserver. Um einen Dienst auf Port 8000 zu erreichen, musst du ihn in der URL explizit angeben:
http://example.com:8000
.