Ss: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | = | + | = ss = |
| − | + | ||
| − | + | '''ss''' (''socket statistics'') aus ''iproute2'' zeigt Sockets an und ist der Nachfolger von ''netstat''. Das Prinzip: ein '''Socket-Typ''' kombiniert mit ein paar '''Modifikatoren''' – damit deckt man alle Fälle ab, ohne sich Dutzende Aufrufe zu merken. | |
| − | + | ||
| − | + | == Bausteine == | |
| − | + | ||
| − | + | Socket-Typ: | |
| − | + | ||
| − | = | + | ; -t |
| − | + | : TCP | |
| − | + | ; -u | |
| − | + | : UDP | |
| − | + | ; -x | |
| − | + | : UNIX-Domain-Sockets | |
| − | + | ||
| − | + | Modifikatoren: | |
| − | + | ||
| − | + | ; -l | |
| − | = | + | : nur ''listening'' (lauschende Sockets) |
| − | + | ; -a | |
| − | + | : alle (listening + nicht-listening) | |
| − | + | ; -n | |
| − | + | : numerisch (keine Namensauflösung von Host/Port, schneller) | |
| − | + | ; -p | |
| − | + | : zugehörigen Prozess (PID/Programm) anzeigen – meist als root nötig | |
| − | + | ||
| − | + | Ohne <code>-l</code> und ohne <code>-a</code> zeigt ss nur die '''aktiven''' (established) Verbindungen. | |
| − | + | ||
| − | + | == Muster == | |
| − | + | ||
| − | = | + | <pre> |
| − | + | ss -[t|u|x] [a] [l] [n] [p] | |
| − | = | + | </pre> |
| − | + | ||
| − | + | Die Reihenfolge der Buchstaben ist egal, <code>ss -tlnp</code> = <code>ss -tnpl</code>. | |
| − | + | ||
| − | + | == TCP == | |
| − | + | ||
| − | = | + | <pre> |
| − | + | ss -t # aktive TCP-Verbindungen | |
| − | + | ss -tn # dito, numerisch | |
| − | + | ss -tnp # dito, mit Prozess | |
| − | + | ss -tl # TCP im Listen-Modus | |
| − | + | ss -tln # Listen, numerisch | |
| − | + | ss -tlnp # Listen, numerisch, mit Prozess | |
| − | + | ss -atnp # ALLE TCP-Sockets, numerisch, mit Prozess | |
| − | + | </pre> | |
| − | + | ||
| − | + | == UDP == | |
| − | + | ||
| − | + | <pre> | |
| − | + | ss -u # aktive UDP-Sockets | |
| − | = | + | ss -un # numerisch |
| − | * | + | ss -unp # mit Prozess |
| + | ss -ul # UDP im Listen-Modus (wartende Ports) | ||
| + | ss -uln # Listen, numerisch | ||
| + | ss -ulnp # Listen, numerisch, mit Prozess | ||
| + | ss -aunp # ALLE UDP-Sockets, numerisch, mit Prozess | ||
| + | </pre> | ||
| + | |||
| + | == UNIX == | ||
| + | |||
| + | <pre> | ||
| + | ss -x # aktive UNIX-Sockets | ||
| + | ss -xp # mit Prozess | ||
| + | ss -xl # UNIX im Listen-Modus | ||
| + | ss -xlp # Listen, mit Prozess | ||
| + | ss -axp # ALLE UNIX-Sockets, mit Prozess | ||
| + | </pre> | ||
| + | |||
| + | == Filtern == | ||
| + | |||
| + | <pre> | ||
| + | ss -tlnp sport = :443 # nur Quellport 443 | ||
| + | ss -tn dst 10.0.2XX.0/24 # nur Ziel in diesem Netz | ||
| + | ss -tlnp | grep ssh # schnell und schmutzig | ||
| + | </pre> | ||
| + | |||
| + | == Übung == | ||
| + | |||
| + | ; Info | ||
| + | : Aufgaben können auch über ''ss'' gelöst werden. | ||
| + | |||
| + | # Gibt es aktive TCP-Verbindungen? | ||
| + | # Gibt es aktive UDP-„Verbindungen"? | ||
| + | # Welche TCP-Ports sind im Listen-Modus? | ||
| + | # Welche UDP-Ports warten auf Dateneingang? | ||
| + | # Auf welchen Ports läuft ein Webserver? | ||
| + | # Auf welchen Ports läuft der SSH-Server? | ||
| + | # Über welchen UNIX-Socket kommuniziert der MySQL-Server? | ||
| + | |||
| + | <!--- | ||
| + | == Lösungen == | ||
| + | |||
| + | <pre> | ||
| + | # 1) aktive TCP-Verbindungen | ||
| + | ss -tn | ||
| + | |||
| + | # 2) aktive UDP-Sockets (UDP ist verbindungslos -> "Verbindungen" in Anführungszeichen) | ||
| + | ss -un | ||
| + | |||
| + | # 3) lauschende TCP-Ports | ||
| + | ss -tln | ||
| + | |||
| + | # 4) lauschende UDP-Ports | ||
| + | ss -uln | ||
| + | |||
| + | # 5) Webserver -> Listen-Ports + Prozess, auf 80/443 bzw. nginx/apache achten | ||
| + | ss -tlnp | ||
| + | ss -tlnp | grep -E ':80 |:443 ' | ||
| + | |||
| + | # 6) SSH-Server -> Port 22 / Prozess sshd | ||
| + | ss -tlnp | grep ssh | ||
| + | |||
| + | # 7) UNIX-Socket des MySQL/MariaDB-Servers (z.B. /run/mysqld/mysqld.sock) | ||
| + | ss -xlp | grep -i mysql | ||
| + | </pre> | ||
| + | ---> | ||
| + | |||
| + | == Siehe auch == | ||
| + | |||
| + | * [[Ip addr]] | ||
Aktuelle Version vom 15. Juni 2026, 15:43 Uhr
ss
ss (socket statistics) aus iproute2 zeigt Sockets an und ist der Nachfolger von netstat. Das Prinzip: ein Socket-Typ kombiniert mit ein paar Modifikatoren – damit deckt man alle Fälle ab, ohne sich Dutzende Aufrufe zu merken.
Bausteine
Socket-Typ:
- -t
- TCP
- -u
- UDP
- -x
- UNIX-Domain-Sockets
Modifikatoren:
- -l
- nur listening (lauschende Sockets)
- -a
- alle (listening + nicht-listening)
- -n
- numerisch (keine Namensauflösung von Host/Port, schneller)
- -p
- zugehörigen Prozess (PID/Programm) anzeigen – meist als root nötig
Ohne -l und ohne -a zeigt ss nur die aktiven (established) Verbindungen.
Muster
ss -[t|u|x] [a] [l] [n] [p]
Die Reihenfolge der Buchstaben ist egal, ss -tlnp = ss -tnpl.
TCP
ss -t # aktive TCP-Verbindungen ss -tn # dito, numerisch ss -tnp # dito, mit Prozess ss -tl # TCP im Listen-Modus ss -tln # Listen, numerisch ss -tlnp # Listen, numerisch, mit Prozess ss -atnp # ALLE TCP-Sockets, numerisch, mit Prozess
UDP
ss -u # aktive UDP-Sockets ss -un # numerisch ss -unp # mit Prozess ss -ul # UDP im Listen-Modus (wartende Ports) ss -uln # Listen, numerisch ss -ulnp # Listen, numerisch, mit Prozess ss -aunp # ALLE UDP-Sockets, numerisch, mit Prozess
UNIX
ss -x # aktive UNIX-Sockets ss -xp # mit Prozess ss -xl # UNIX im Listen-Modus ss -xlp # Listen, mit Prozess ss -axp # ALLE UNIX-Sockets, mit Prozess
Filtern
ss -tlnp sport = :443 # nur Quellport 443 ss -tn dst 10.0.2XX.0/24 # nur Ziel in diesem Netz ss -tlnp | grep ssh # schnell und schmutzig
Übung
- Info
- Aufgaben können auch über ss gelöst werden.
- Gibt es aktive TCP-Verbindungen?
- Gibt es aktive UDP-„Verbindungen"?
- Welche TCP-Ports sind im Listen-Modus?
- Welche UDP-Ports warten auf Dateneingang?
- Auf welchen Ports läuft ein Webserver?
- Auf welchen Ports läuft der SSH-Server?
- Über welchen UNIX-Socket kommuniziert der MySQL-Server?