snippets · bash

Welcher Prozess blockiert meinen Port?

Apache, Caddy, Docker oder ein lokaler Dev-Server startet nicht: address already in use.

Das Problem

Der Port ist nicht das Problem – ein anderer Socket hört bereits darauf. Bevor du Prozesse abschießt, willst du wissen, wer und auf welcher Adresse lauscht.

Diagnose

sudo ss -ltnp 'sport = :<PORT>'

Beispiel für Port 443:

sudo ss -ltnp 'sport = :443'

Achte auf Local Address:Port und den Prozess. 0.0.0.0:443 beziehungsweise [::]:443 bindet breit; 127.0.0.1:443 nur lokal.

Wenn Docker im Spiel ist:

docker ps --format 'table {{.Names}}\t{{.Ports}}'

Damit siehst du, ob ein Container den Host-Port veröffentlicht.

Ergebnis interpretieren

Ist es ein erwarteter Reverse Proxy, sollte der zweite Dienst wahrscheinlich nicht denselben Host-Port binden, sondern intern dahinter laufen. Ist es ein alter Dev-Prozess, kannst du ihn gezielt stoppen.

Nicht mit kill -9 beginnen. Erst den Besitzer identifizieren, dann den Dienst über sein normales Werkzeug stoppen (docker compose down, systemctl stop ..., Dev-Server beenden).