Sockstat ist ein Allround-Befehlszeilen-Dienstprogramm, das in FreeBSD einbezogen wird. Es wird immense Verwendung bei der Untersuchung von Netzwerkverbindungen und offenen Sockeln gesehen. In FreeBSD listet die Namen und den Status der Hintergrund- und Vordergrundprozesse auf, die dazu geführt haben, dass ein Netzwerkanschluss freigeschaltet wurde. Sie können es sogar so anpassen, dass die Kommunikationsbuchsenlisten zum Verbindungsstatus, IP -Versionen, welche Ports von bestimmten Programmen usw. angehört werden, usw., und vereinfachen Sie die Ergebnisse basierend auf Socket -Eigentümer und Deskriptoren für die Kommunikationsbuchsen. Mit Sockstat können Sie auch alle komplizierten Details zu jedem der UNIX -Domänen -Sockets/IPC sehen. Ein passender Schritt wäre, Sockstat in den Grep -Filter zu integrieren, um seine Funktionalität zu verdreifachen und das Beste daraus herauszuholen.
Schauen wir uns einige der ordentlichen Sachen an, die wir mit Sockstat auf FreeBSD abziehen können.
Listen Sie die funktionierenden Ports auf FreeBSD mit Sockstat auf
Der Befehl sockstat listet alle Sockets auf, die derzeit in einem FreeBSD -System geöffnet werden. Geben Sie den Befehl sockstat ein, der mit einer der Flaggen oder Optionen nicht angerechnet ist, um die Liste der offenen Sockets anzuzeigen:
$ sockstat
Nehmen wir uns einen Moment Zeit und gehen Sie durch, was jede der Spaltenbezeichnungen in der Ausgabe bedeutet. Die erste Spalte von links ist mit dem Bezeichnung Benutzer gekennzeichnet. Sie listet alle Benutzerkonten (Wurzeln, MySQL) auf, zu denen jeder Sockel gehört. Der zweite Spalten -Header ist der Befehl, und in diesem Spalten -Header werden alle Befehle aufgeführt, die jeden Sockel auf geöffnetes Einsatz gesetzt haben. In der PID -Spalte und der FD -Spalten werden die Prozess -IDs bzw. die Dateideskriptoren der Sockets aufgeführt. Das Proto mit Säulenkopf zeigt alle Steckdosentypen Transportprotokolle an, die mit jedem geöffneten Anschluss verknüpft sind. Die letzten beiden Spalten sind die lokale Adresse und die ausländische Adresse. Die erste dieser beiden listet die lokale IP -Adresse für jeden offenen Sockel auf. Letzteres gibt an, welche IP -Adressen mit jedem dieser Sockets verknüpft sind.
Listen Sie bestimmte Versionen von geöffneten Ports in FreeBSD auf
So fügen Sie zum Beispiel die IPv4 -Version geöffnete Sockets mit einer bestimmten Protokollversion nur mit einer spezifischen IPv4 -Version zum Ende des Sockstat -Befehls hinzu:
$ sockstat -4
Sie können es beispielsweise auch eine Liste anderer Versionen ähnlich darstellen lassen
$ sockstat -6
Sollte alle Steckdosen mit IPv6 anzeigen.
Listen Sie die offenen Sockets basierend auf TCP/UDP in FreeBSD auf
Fügen Sie das Flag -P -Flag dem Befehl sockstat hinzu, um die Liste der offenen Sockets basierend auf TCP oder UDP präsentieren zu lassen. Sie müssen dem Befehl des Protokolls auch den Argumentnamen des Protokolls hinzufügen. Geben Sie den folgenden Befehl ein: Um nur TCP -basierte Sockets zu haben, geben Sie den folgenden Befehl ein:
$ sockstat -p tcp
In ähnlicher Weise können Sie auf der Basis von UDP in die engere Wahl kommen:
$ sockstat -p UDP
Diese beiden können sehr einfach miteinander verbunden werden:
$ sockstat -p tcp, udp
Bisher erweitert Sockstat seine Unterstützung auf das ICMP -Protokoll nicht.
Zeigen Sie Socken mit bestimmten Portnummern an
Um alle geöffneten Sockets, sowohl TCP als auch UDP, zu sehen, während die Liste basierend auf Portnummern (sowohl lokal als auch ansonsten) angeordnet ist, geben Sie den Befehl sockstat mit entsprechenden Flags ein:
$ sockstat -p tcp -p 443
$ sockstat -p UDP -p 53
$ sockstat -p tcp -p 443,53,80,21
In den obigen Befehlen zeigt der erste den TCP -HTTPS -Port, den zweiten der UDP -DNS -Ports, während der dritte beide zeigt.
Sehen Sie sich die offenen Ports an, die auf FreeBSD gehört werden
Mit der Flagge -Flag, die dem Befehl sockstat hinzugefügt wurde, wird Ihnen offener Socket präsentiert, der derzeit die Protokollsuite und alle geöffneten Unix -Domänen -Sockets sowie alle benannten Pipes anhören.
$ sockstat -l
Listen Sie die Ports aktiv auf das Netzwerk zu
Fügen Sie die Flags -l- und -s -Flags dem Befehl Sockstat hinzu, um die offenen TCP -Ports durch ihren Hörstatus zu arrangieren.
$ sockstat -46 -l -s
UDP kann nicht als Nicht-Network-Protokoll angezeigt werden, wodurch keine Daten zum Hörstatus beibehalten werden.
Ordnen Sie offene Ports mit der App/dem Befehl mit ihnen an
Hier ist der Teil, in dem das Kombination von Sockstat -Befehl mit Grep -Dienstprogramm nützlich ist. Mit GREP -Dienstprogramm können Sie die offenen Ports von den Anwendungen, die derzeit verwendet werden, aufgelistet sein.
Der Befehl, mit dem Sie die offenen Ports, die insbesondere mit dem NTPD -Server verknüpft sind, auflisten, lautet:
$ sockstat -46 | grep ntpd
Sie können die Auflistung spezifischer gestalten, indem Sie die angeschlossenen Sockets nur an den obigen Befehl hinzufügen:
$ sockstat -46 -c | grep ntpd
Zeigen Sie alle Unix -Sockets an
Lassen Sie alle Unix-Domain-Sockets aufgelistet, indem Sie den Befehl sockstat hinzufügen: u- a flagge:
$ sockstat -u
Dies sollte auch die genannten Rohre zusammen mit den Unix -Sockets anzeigen.
Ordnen Sie offene Ports nach HTTPS -angeschlossenen Protokollen an
Verwenden Sie den folgenden Befehl, um die Liste des HTTPS -Protokolls für jeden Socket anzeigen zu lassen:
$ sockstat -46 -s -p tcp -p 443 -c
Listen Sie HTTP Remote Sockets auf
Sie können auch alle Remote -Sockets mithilfe des HTTP -Protokolls auflisten. Führen Sie eine der folgenden Befehle im Terminal aus:
$ sockstat -46 -c | EGREP '80 | 443 '| awk 'print $ 7' | Uniq -c | sortieren -nr
$ sockstat -46 -c -p 80.443 | GREP -v -Adresse | awk 'print $ 7' |
Uniq -c | sortieren -nr
Suchen Sie die Anzahl der gesendeten IP -Adresse, die gesendet wurden
Um herauszufinden, wie viele Verbindungsanfragen von jeder IP -Adresse empfangen wurden, können Sie den folgenden Befehl ausführen:
$ sockstat -46 -c | EGREP '80 | 443 '| awk 'print $ 7' | Cut -d: -f1 | Uniq -c | sortieren -n
Wenn Sie feststellen, ob eine ungewöhnlich hohe Anzahl von Verbindungsanforderungen von einer IP -Adresse gesendet wird, können Sie feststellen, dass es eine böswillige Absicht gibt und die gelbe Alarms positiv eingeben und die entsprechenden Sicherheitsprotokolle aufnehmen kann.
Senden Sie eine DNS -Abfrage von TCP Socket
Sie können eine DNS -Abfrage über die TCP -Socket auf der Konsole senden, vorausgesetzt, das Netzwerk ist frei von jedem DNS -Datenverkehr. Führen Sie den Befehl unten aus:
$ dig +tcp www.Domain.com @127.0.0.1
Einpacken
Sie haben also viel über die Verwendung des Befehls sockstat und seine Variationen mit Flaggen und Switches gelernt. Sie haben auch gesehen, wie es auf unterschiedliche Weise verwendet wird, um die Netzwerkdiagnostik in verschiedenen Vorlieben darzustellen und diese Informationen zu verwenden, um eine facettenreiche Fehlerbehebung in FreeBSD durchzuführen. Das ist eine ganze Menge an sich, aber jetzt, wo Sie mit diesem Zeug vertraut sind, sollten Sie in Betracht ziehen, die Befehlszeile der Sockstat mit einigen leistungsstarken Befehlszeilen-Tools wie Netstat und ISOF einzubeziehen.