GNU/Linux >> LINUX-Kenntnisse >  >> FreeBSD

15 nützliche „Sockstat-Befehlsbeispiele“, um offene Ports in FreeBSD zu finden

Sockstat ist ein vielseitiges Befehlszeilenprogramm, das zum Anzeigen von Netzwerk- und System-geöffneten Sockets in FreeBSD verwendet wird. Hauptsächlich ist der Befehl sockstat standardmäßig in FreeBSD installiert und wird häufig verwendet, um den Namen der Prozesse anzuzeigen, die einen bestimmten Netzwerkport auf einem FreeBSD-System geöffnet haben.

Allerdings sockstat kann auch offene Sockets basierend auf der Protokollversion (beide IP-Versionen), dem Status der Verbindung und auf welchen Ports ein Daemon oder ein Programm bindet und lauscht auflisten.

Lesen Sie auch :20 nützliche „netstat“-Befehlsbeispiele zum Überprüfen von Netzwerkverbindungen

Es kann auch Sockets für die Kommunikation zwischen Prozessen anzeigen, die normalerweise als Unix-Domain-Sockets oder IPC bekannt sind. Der Sockstat-Befehl in Kombination mit dem grep-Filter oder der Weiterleitung durch das awk-Dienstprogramm erweist sich als leistungsstarkes Tool für den lokalen Netzwerkstapel.

Es kann die Ergebnisse für eine geöffnete Verbindung basierend auf dem Benutzer, dem der Socket gehört, dem Dateideskriptor eines Netzwerk-Sockets oder der PID des Prozesses, der den Socket geöffnet hat, verkleinern.

In diesem Handbuch listen wir einige gängige, aber auch sehr leistungsfähige Beispiele für die Verwendung des Befehlszeilen-Netzwerkdienstprogramms Sockstat in FreeBSD auf.

Anforderungen

  1. FreeBSD 11.1 Installationshandbuch

1. Alle geöffneten Ports in FreeBSD auflisten

Einfach ohne Optionen oder Schalter ausgeführt, zeigt der Sockstat-Befehl alle geöffneten Sockets in einem FreeBSD-System an, wie im folgenden Screenshot dargestellt.

# sockstat

Die in der Sockstat-Ausgabe angezeigten Werte werden wie folgt beschrieben:

  • BENUTZER :Der Eigentümer (Benutzerkonto) des Sockets.
  • BEFEHL :Der Befehl, der den Socket geöffnet hat.
  • PID :Die Prozess-ID des Befehls, der den Socket besitzt.
  • FD :Die Dateideskriptornummer des Sockets.
  • PROTO :Das Transportprotokoll (normalerweise TCP/UDP), das dem geöffneten Socket oder Socket-Typ im Falle von Unix-Domain-Sockets (Datagramm, Stream oder Seqpac) für UNIX-Sockets zugeordnet ist.
  • LOKALE ADRESSE :Stellt die lokale IP-Adresse für IP-basierte Sockets dar. Im Fall von Unix-Sockets stellt es den Dateinamen des Endpunkts dar, der an den Socket angehängt ist. Der “??” Notation impliziert, dass der Socket-Endpunkt nicht erkannt oder eingerichtet werden konnte.
  • FREMDE ADRESSE :Die entfernte IP-Adresse, mit der der Socket verbunden ist.

2. Abhörende oder geöffnete Ports in FreeBSD auflisten

Wird mit -l ausgeführt Flag, der Befehl sockstat zeigt alle im Netzwerkstapel geöffneten Listening-Sockets und alle geöffneten Unix-Domain-Sockets oder benannten Pipes an, die an einer Art lokaler Datenverarbeitung im System beteiligt sind.

# sockstat -l

3. Auflisten von geöffneten IPv4-Ports in FreeBSD

Um alle geöffneten Sockets für IPv4 anzuzeigen Nur Protokoll, geben Sie den Befehl mit -4 ein Flag, wie im folgenden Beispiel vorgeschlagen.

# sockstat -4

4. Auflisten der geöffneten IPv6-Ports in FreeBSD

Ähnlich wie bei der IPv4-Version können Sie sich auch die geöffneten Netzwerk-Sockets für IPv6 anzeigen lassen nur, indem Sie den unten gezeigten Befehl ausgeben.

# sockstat -6

5. Offene TCP- oder UDP-Ports in FreeBSD auflisten

Um Netzwerk-Sockets anzuzeigen, die nur auf einem bestimmten Netzwerkprotokoll basieren, z. B. TCP oder UDP verwenden Sie das -P Flag, gefolgt vom Argumentnamen des Protokolls.

Die Protokollnamen finden Sie im Inhalt von /etc/protocols Datei. Derzeit wird das ICMP-Protokoll nicht vom Sockstat-Tool unterstützt.

Nur TCP-Sockets anzeigen
# sockstat -P tcp
Nur UDP-Sockets anzeigen
# sockstat -P udp

Verketten Sie beide Protokolle.

# sockstat –P tcp,udp

6. TCP- und UDP-spezifische Portnummern auflisten

Wenn Sie alle geöffneten TCP- oder UDP-IP-Sockets basierend auf der lokalen oder Remote-Portnummer anzeigen möchten, verwenden Sie die folgenden Befehlsflags und Syntax, wie im folgenden Screenshot dargestellt.

# sockstat -P tcp -p 443             [Show TCP HTTPS Port]
# sockstat -P udp -p 53              [Show UDP DNS Port] 
# sockstat -P tcp -p 443,53,80,21    [Show Both TCP and UDP]

7. Geöffnete und verbundene Ports in FreeBSD auflisten

Um alle geöffneten und verbundenen Sockets anzuzeigen, verwenden Sie den -c Flagge. Wie in den folgenden Beispielen gezeigt, können Sie alle HTTPS auflisten verbundene Sockets oder alle TCP-verbundenen Sockets, indem Sie die Befehle ausgeben.

# sockstat -P tcp -p 443 -c
# sockstat -P tcp -c

8. Auflisten von Netzwerk-Listening-Ports in FreeBSD

Um alle geöffneten TCP-Sockets im Listening-Zustand aufzulisten, hängen Sie den -l an und -s Flags, wie im folgenden Beispiel gezeigt. Als verbindungsloses Protokoll speichert UDP keine Informationen über den Zustand der Verbindung.

Geöffnete UDP-Sockets können nicht anhand ihres Status angezeigt werden, da das UDP-Protokoll Datagramme zum Senden/Empfangen von Daten verwendet und keinen eingebauten Mechanismus zum Bestimmen des Verbindungsstatus hat.

# sockstat -46 -l -s

9. Unix-Sockets und Named Pipes auflisten

Unix-Domain-Sockets sowie andere Formen der lokalen Kommunikation zwischen Prozessen, wie Named Pipes, können mit dem Sockstat-Befehl unter Verwendung von -u angezeigt werden Flagge, wie im Bild unten gezeigt.

# sockstat -u

10. Auflisten von Ports, die von Anwendungen in FreeBSD geöffnet wurden

Die Ausgabe des Sockstat-Befehls kann durch das Dienstprogramm grep gefiltert werden, um eine Liste der Ports anzuzeigen, die von einer bestimmten Anwendung oder einem bestimmten Befehl geöffnet wurden.

Angenommen, Sie möchten alle mit Nginx verknüpften Sockets auflisten Webserver können Sie den folgenden Befehl ausführen, um die Aufgabe auszuführen.

# sockstat -46 | grep nginx

Geben Sie den folgenden Befehl ein, um nur die mit dem Nginx-Webserver verknüpften verbundenen Sockets anzuzeigen.

# sockstat -46 -c| grep nginx

11. HTTPS-verbundene Protokolle auflisten

Sie können alle mit HTTPS verknüpften Sockets auflisten Protokoll neben dem Status jeder Verbindung, indem Sie den folgenden Befehl ausführen.

# sockstat -46 -s -P TCP -p 443 -c

12. HTTP-Remote-Sockets auflisten

Um alle dem HTTP-Protokoll zugeordneten Remote-Sockets aufzulisten, können Sie eine der folgenden Befehlskombinationen ausführen.

# sockstat -46 -c | egrep '80|443' | awk '{print $7}' | uniq -c | sort -nr
# sockstat -46 -c -p 80,443 | grep -v ADDRESS|awk '{print $7}' | uniq -c | sort -nr

13. Finden Sie die höchsten HTTP-Anfragen nach IP-Adressen

Falls Sie herausfinden möchten, wie viele HTTP-Verbindungen von jeder Remote-IP-Adresse angefordert werden, geben Sie den folgenden Befehl ein. Dieser Befehl kann sehr nützlich sein, wenn Sie feststellen möchten, ob Ihr Webserver einer Art DDOS-Angriff ausgesetzt ist. Im Verdachtsfall sollten Sie die IP-Adressen mit der höchsten Anfragerate untersuchen.

# sockstat -46 -c | egrep '80|443' | awk '{print $7}' | cut -d: -f1 | uniq -c | sort –nr

14. DNS Open Sockets auflisten

Wenn Sie einen Cache- und Weiterleitungs-DNS-Server an Ihrem Standort konfiguriert haben, um interne Clients über das TCP-Transportprotokoll zu bedienen, und Sie eine Liste aller vom Resolver
geöffneten Sockets zusammen mit dem Status jeder Socket-Verbindung anzeigen möchten, führen Sie Folgendes aus folgenden Befehl.

# sockstat -46 -P tcp –p 53 -s

15. TCP-DNS in lokaler Domäne abfragen

Wenn im Netzwerk kein DNS-Verkehr vorhanden ist, können Sie manuell eine DNS-Abfrage auf dem TCP-Socket von der Konsole des lokalen Computers aus auslösen, indem Sie den folgenden dig-Befehl ausführen. Führen Sie anschließend den obigen Befehl aus, um alle Resolver-Sockets aufzulisten.

# dig +tcp  www.domain.com  @127.0.0.1

Das ist alles! Zusammen mit den Befehlszeilendienstprogrammen netstat und lsof ist die Befehlszeilenprogrammsockstat ein leistungsstarkes Dienstprogramm, das zum Erfassen von Netzwerkinformationen und zum Beheben mehrerer Aspekte des FreeBSD-Netzwerkstapels und von netzwerkbezogenen Prozessen und Diensten verwendet wird.

Das Gegenstück zum FreeBSD-Sockstat-Befehl unter Linux wird durch netstat repräsentiert oder die neue ss Befehl. Ob Sie es glauben oder nicht, basierend auf dem Programm Sockstat finden Sie eine ähnliche Anwendung, die für Android OS entwickelt wurde, namens SockStat – Simple Netstat GUI.


FreeBSD
  1. 12 nützliche Wget-Befehlsbeispiele unter Linux

  2. 25 Nützliche praktische Beispiele für find-Befehle unter Linux

  3. 23 Nützliche PKG-Befehlsbeispiele zum Verwalten von Paketen in FreeBSD

  4. ls-Befehl unter Linux:17 nützliche Beispiele erklärt

  5. Nützliche Beispiele für den Docker-ps-Befehl

11 Nützliche Beispiele für Linux-Datumsbefehle

Nützliche Wget-Befehlsbeispiele im Linux-System

50 einfache und nützliche Beispiele für den Find-Befehl in Linux

15 Nützliche Beispiele für Touch-Befehle im Linux-System

15 super nützliche Beispiele für den Find-Befehl in Linux

12 Nützliche Beispiele für Linux-Datumsbefehle