SS-Befehl in Linux mit nützlichen Beispielen

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-Statistiken. Es ist ein ähnliches Tool wie netstat, das weitere 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 ss-Befehl in Linux mit nützlichen Beispielen.

1. Netzwerkverbindung auflisten

Der ss-Befehl ohne Optionen listet alle offenen nicht-hörenden Sockets (zB TCP/UNIX/UDP) auf, die eine Verbindung aufgebaut haben.

$ ss

  1. Netid: Zeigt die Arten von Sockets an.
  2. Status: Zeigt den Status eines Sockets an, wenn es sich um Established (ESTAB), Unconnected (UNCONN) oder Listening (LISTEN) handelt.
  3. Recv-Q: Zeigt die Anzahl der empfangenen Pakete in der Warteschlange an.
  4. Send-Q: Zeigt die Anzahl der gesendeten Pakete in der Warteschlange an.
  5. Lokale Adresse:Port: Zeigt die Adresse des lokalen Computers und des Ports an.
  6. Peer-Adresse:Port: Zeigt die Adresse des Remote-Rechners und des Ports 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. Listen Sie die Hör-Sockets auf

So zeigen Sie die Liste der Abhörbuchsen mit . an -l oder --listen Möglichkeit.

$ ss -l

Hörbuchsen

3. Listen Sie alle Steckdosen auf

Sie können alle hörenden und nicht hörenden Netzwerkverbindungen auflisten, indem Sie die -a oder -all Möglichkeit.

$ ss -a

alle Steckdosen auflisten

4. TCP-Verbindung auflisten

Um die TCP-Socket-Verbindung anzuzeigen, verwenden Sie die -t oder --tcp Möglichkeit.

$ ss -t

TCP-Verbindung anzeigen

Um die Liste der anzuzeigen alle TCP-Verbindungen, du kannst den … benutzen -a und -t Optionen. Dies beinhaltet alle Zustände des Sockets.

$ ss -at

Um die TCP-Verbindung für alle Abhörzustände anzuzeigen, kombinieren Sie -l und -t Optionen.

$ ss -alt

5. List UDP-Verbindung

Um die UDP-Socket-Verbindung anzuzeigen, verwenden Sie -u oder --udp Möglichkeit.

$ ss -u

UDP-Verbindung anzeigen

Um die . anzuzeigen Liste aller UDP-Verbindungen, benutzen -a und -u Optionen. Dies beinhaltet alle Zustände des Sockets.

$ ss -au

Sie können kombinieren -l und -u um die UDP-Verbindung anzuzeigen für alle Hörzustände.

$ ss -lu

6. Unix-Sockets auflisten

Um alle Unix-Sockets anzuzeigen, können Sie den Befehl ss zusammen mit -f unix oder -x.

$ ss -f unix

Unix-Sockets auflisten

7. Raw Sockets auflisten

Um alle Raw-Sockets anzuzeigen, können Sie -w oder –raw-Option.

$ ss -w

Raw-Sockets auflisten

8. Verbindung einer IP-Adresse auflisten

Wir können den Befehl ss verwenden, um die Listenverbindung eines bestimmten Ziels oder einer bestimmten Quell-IP-Adresse anzuzeigen.

Für example um die Verbindung der Ziel-IP-Adresse aufzulisten:

$ ss dst 13.227.138.30

Listenverbindung der IP-Adresse

Für example um die Verbindung der Quell-IP-Adresse aufzulisten:

$ ss src 192.168.18.151

9. IPv4- und IPv6-Socket-Verbindungen 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

IPv4-Socket auflisten

So zeigen Sie die IPv6-Socket-Verbindungsliste an:

$ ss -6

IPv6-Socket auflisten

Um alle IPv4-TCP-Verbindungen aufzulisten, können Sie Folgendes verwenden example.

$ ss -at4

10. Prozesse identifizieren

Sie finden die Prozesse von Sockets Verwendung der -p Option zusammen mit dem ss-Befehl. Um den Prozess zu identifizieren, benötigen Sie sudo Erlaubnis.

$ sudo ss -t -p

Prozesse auflisten

11. Listenverbindung ohne Hostnamenauflösung

Um die numerische Adresse/Ports aufzulösen, verwenden Sie die Option -r (Auflösen). Während die –n Option versucht nicht, Dienstnamen aufzulösen.

Hier im example, können Sie den Unterschied zwischen den beiden sehen:

$ 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 für die Anwendung von Filtern an, um bestimmte Informationen auszugeben.

Geben Sie Folgendes ein, um die TCP-Verbindung mit Zustandsüberwachung zu filtern:

$ 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 die traditionelle Art des grep-Befehls 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

ss-Befehlsoptionen

ss vs netstat-Befehl

Das ss-Tool ist im Paket iproute2 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 aus dem Kernel holt. Die ss ist kein vollständiger Ersatz von netstat, ein Teil des netstat-Befehls wird durch den ip-Befehl ersetzt.

Fazit

In diesem Tutorial haben wir den Befehl ss mit einigen nützlichen Beispielen kennengelernt. Sie können verweisen ss-Befehls-Manpage für mehr Informationen.