Die drei Portbereiche
- 0–1023, well-known: von der IANA Standarddiensten zugewiesen. Unter Unix darf nur root (oder ein Prozess mit CAP_NET_BIND_SERVICE) darauf lauschen.
- 1024–49151, registriert: auf Antrag an Hersteller und Projekte vergeben (3306 MySQL, 5432 PostgreSQL, 6379 Redis). Jeder Benutzer kann sie binden.
- 49152–65535, dynamisch / ephemeral: für die Client-Seite von Verbindungen. Linux verwendet standardmäßig tatsächlich 32768–60999 (
net.ipv4.ip_local_port_range).
Ports, die nie im Internet erreichbar sein sollten
Redis (6379), Memcached (11211), MongoDB (27017), Elasticsearch (9200), die Docker-API (2375), etcd (2379) und die meisten Datenbanken werden ohne Authentifizierung oder mit schwachen Standardwerten ausgeliefert und ständig gescannt. Binden Sie sie an 127.0.0.1 oder eine private Schnittstelle, stellen Sie sie hinter ein VPN oder eine Firewall-Regel, und verlassen Sie sich nie auf Unauffälligkeit. Shodan indexiert sie alle innerhalb von Stunden.
Herausfinden, was lauscht
ss -tulpn # Linux: lauschende TCP/UDP-Sockets mit Prozessnamen
sudo lsof -i :8080 # welcher Prozess Port 8080 hält
nc -zv host 22 # ist ein entfernter Port offen? Ein Port, der in ss „offen“ ist, aber von außen nicht erreichbar, wird meist von einer Firewall blockiert (ufw, nftables, eine Cloud-Security-Group oder Cloudflare, das nur 80/443 weiterleitet).
Fragen
Was ist der Unterschied zwischen TCP- und UDP-Ports?
Es sind getrennte Namensräume: TCP 53 und UDP 53 sind verschiedene Sockets, obwohl DNS beide nutzt. Ein Dienst kann auf einem, dem anderen oder beiden lauschen.
Warum kann ich Port 80 nicht ohne root binden?
Ports unter 1024 sind unter Unix privilegiert. Betreiben Sie den Dienst auf einem hohen Port hinter einem Reverse-Proxy, geben Sie dem Programm CAP_NET_BIND_SERVICE (setcap) oder nutzen Sie systemd-Socket-Aktivierung.
Was bedeutet „address already in use“?
Ein anderer Prozess lauscht bereits auf dem Port (ss -tulpn zeigt welcher), oder ein kürzlich geschlossener Socket ist noch in TIME_WAIT. SO_REUSEADDR oder eine Minute Warten behebt Letzteres.
Welche Ports nutzt HTTP/3?
UDP 443. HTTP/3 läuft über QUIC, das UDP-basiert ist; Browser entdecken es über den Alt-Svc-Header oder einen HTTPS-DNS-Eintrag.