Das ss-Tool ist ein CLI-Befehl, der verwendet wird, um Informationen über den Netzwerk-Socket in Linux anzuzeigen. Das ss steht für Socket Statistics. Es ist ein ähnliches Tool wie netstat, das mehr Informationen wie TCP und Statusinformationen anzeigen kann.
Das ss-Tool wird mit dem iproute2-Paket geliefert. Es kann Statistiken für PACKET-, TCP-, UDP-, DCCP-, RAW- und Unix-Domain-Sockets anzeigen.
In diesem Tutorial lernen wir den ss-Befehl in Linux mit nützlichen Beispielen.
1. Netzwerkverbindung auflisten
Der Befehl ss ohne Optionen listet alle offenen, nicht lauschenden Sockets (z. B. TCP/UNIX/UDP) auf, die eine Verbindung hergestellt haben.
$ ss
- Netid:Zeigt die Arten von Sockets an.
- Zustand:Zeigt den Zustand eines Sockets an, wenn er aufgebaut (ESTAB), nicht verbunden (UNCONN) oder lauschend (LISTEN) ist.
- Recv-Q:Zeigt die Anzahl der empfangenen Pakete in der Warteschlange an.
- Send-Q:Zeigt die Anzahl der gesendeten Pakete in der Warteschlange an.
- Lokale Adresse:Port :Zeigt die Adresse des lokalen Rechners und Ports an.
- Peer-Adresse:Port:Zeigt die Adresse des entfernten Rechners und den Port an.
Sie können detailliertere Informationen erhalten, indem Sie den Befehl ss in Verbindung mit Optionen verwenden. Sie können auch mehrere Optionen gleichzeitig auswählen.
ss-Befehlssyntax:
$ ss [Option]
$ ss [Option1] [Option2] [Option3]
2. Abhör-Sockets auflisten
Um die Liste der Listening Sockets mit -l
anzuzeigen oder --listen
Option.
$ ss -l
3. Alle Steckdosen auflisten
Mit -a
können Sie alle lauschenden und nicht lauschenden Netzwerkverbindungen auflisten oder -all
Option.
$ ss -a
4. TCP-Verbindung auflisten
Um die TCP-Socket-Verbindung anzuzeigen, verwenden Sie den -t
oder --tcp
Option.
$ ss -t
Zum Anzeigen der Liste aller TCP-Verbindungen , können Sie den -a
verwenden und -t
Optionen. Dazu gehören alle Zustände des Sockets.
$ ss -at
Um die TCP-Verbindung für alle Listening-Zustände anzuzeigen, kombinieren Sie -l
und -t
Optionen.
$ ss -alt
5. UDP-Verbindung auflisten
Um die UDP-Socket-Verbindung anzuzeigen, verwenden Sie -u
oder --udp
Option.
$ ss -u
Zum Anzeigen der Liste aller UDP-Verbindungen verwenden Sie -a
und -u
Optionen. Dazu gehören alle Zustände des Sockets.
$ ss -au
Sie können -l
kombinieren und -u
um die UDP-Verbindung für alle Listening-Zustände anzuzeigen .
$ ss -lu
6. Unix-Sockets auflisten
Um alle Unix-Sockets anzuzeigen, können Sie den Befehl ss zusammen mit -f unix
verwenden oder -x
.
$ ss -f unix
7. Raw-Sockets auflisten
Um alle Raw-Sockets anzuzeigen, können Sie -w
verwenden oder --raw-Option.
$ ss -w
8. Verbindung einer IP-Adresse auflisten
Wir können den Befehl ss verwenden, um die Listenverbindung einer bestimmten Ziel- oder Quell-IP-Adresse anzuzeigen.
Zum Beispiel, um die Verbindung der Ziel-IP-Adresse aufzulisten:
$ ss dst 13.227.138.30
Zum Beispiel, um die Verbindung der Quell-IP-Adresse aufzulisten:
$ ss src 192.168.18.151
9. IPv4- und IPv6-Socket-Verbindung auflisten
Wenn Sie die Liste der IPv4-Socket-Verbindungen anzeigen möchten, verwenden Sie die Option -4 und -6, um die Liste der IPv6-Socket-Verbindungen anzuzeigen.
So zeigen Sie die IPv4-Socket-Verbindungsliste an:
$ ss -4
So zeigen Sie die IPv6-Socket-Verbindungsliste an:
$ ss -6
Um alle IPv4-TCP-Verbindungen aufzulisten, können Sie das folgende Beispiel verwenden.
$ ss -at4
10. Prozesse identifizieren
Sie finden die Sockets-Prozesse mit dem -p
Option zusammen mit dem Befehl ss. Um den Prozess zu identifizieren, benötigen Sie die sudo-Berechtigung.
$ sudo ss -t -p
11. Verbindung ohne Hostnamenauflösung auflisten
Verwenden Sie zum Auflösen der numerischen Adresse/Ports die Option -r (Resolve). Während die -n
Option versucht nicht, Dienstnamen aufzulösen.
Hier im Beispiel sehen Sie den Unterschied zwischen den beiden:
$ ss -tn
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
ESTAB 0 0 74.208.235.196:22 48.192.234.17:60216
$ ss -tr
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
ESTAB 0 64 li82-186.members.linode.com:ssh n47-172-231-17.sun4.vic.optusnet.com.au:60317
$
12. Nach Verbindung filtern
Sehen wir uns einige Beispiele an, wie Filter angewendet werden, um bestimmte Informationen auszugeben.
Geben Sie zum Filtern der TCP-Verbindung mit Zustandsüberwachung Folgendes ein:
$ ss -t state listening
So zeigen Sie hergestellte SSH-Port-Verbindungen an:
$ ss -tr state established '( dport = :22 or sport = :22 )'
Sie können auch auf die herkömmliche Art und Weise mit dem grep-Befehl filtern. Hier zeige ich alle TCP-Verbindungen an, die im Zustand lauschen:
$ ss -at | grep LISTEN
ss-Befehlsoptionen
Der Befehl ss bietet verschiedene Optionen, um die anzuzeigende Ausgabe gemäß Ihren Anforderungen zu steuern. Sie können -h oder --help zusammen mit dem Befehl ss verwenden, um die grundlegenden Optionen anzuzeigen, die mit dem Befehlsdienstprogramm ss verfügbar sind.
$ ss -h
Befehl ss vs netstat
Das ss-Tool ist im iproute2-Paket enthalten und in den meisten Linux-Distributionen standardmäßig enthalten. Um netstat zu haben, müssen Sie net-tools installieren, das bereits veraltet ist. Der Befehl ss ist viel schneller, da er direkt vom Kernel abruft. Der ss ist kein vollständiger Ersatz für netstat, einige der netstat-Befehle wurden durch den ip-Befehl ersetzt.
Schlussfolgerung
In diesem Tutorial haben wir anhand einiger nützlicher Beispiele etwas über den Befehl ss gelernt. Weitere Informationen finden Sie in der Manpage des Befehls ss.