Untersuchung von Socket-Details in /proc/net
In diesem Schritt werden Sie das Verzeichnis /proc/net
erkunden, das detaillierte Informationen über den Netzwerkstapel und Netzwerkprotokolle im Linux-Kernel bereitstellt. Hierher beziehen Befehle wie ss
und netstat
ihre Daten.
Das /proc
-Dateisystem ist ein virtuelles Dateisystem, das Informationen über Prozesse und andere Systeminformationen liefert. Es ist eine leistungsstarke Methode, um den internen Zustand des Kernels zu untersuchen.
Innerhalb von /proc/net
finden Sie Dateien, die Rohdaten über Netzwerkverbindungen enthalten. Beispielsweise enthalten tcp
, udp
, tcp6
und udp6
Informationen über aktive TCP- und UDP-Sockets (jeweils IPv4 und IPv6).
Schauen wir uns den Inhalt der tcp
-Datei an. Geben Sie den folgenden Befehl in Ihrem Terminal ein und drücken Sie die Eingabetaste:
cat /proc/net/tcp
Sie werden eine Ausgabe sehen, die in etwa so aussieht:
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode ref pointer drops
0: 0100007F:0019 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 12345 1 0000000000000000 0
1: 00000000:0016 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 67890 1 0000000000000000 0
... (mehr Zeilen)
Diese Ausgabe ist weniger menschenlesbar als die von ss
oder netstat
, da es sich um Rohdaten aus dem Kernel handelt. Jede Zeile repräsentiert einen TCP-Socket und enthält verschiedene Felder, darunter:
sl
: Der Index in der Socket-Liste.
local_address
: Die lokale IP-Adresse und der Port im hexadezimalen Format. 0100007F
ist die hexadezimale Darstellung von 127.0.0.1
(Loopback-Adresse), und 0019
ist die hexadezimale Darstellung von Port 25.
rem_address
: Die entfernte IP-Adresse und der Port im hexadezimalen Format.
st
: Der Zustand des Sockets (z.B. repräsentiert 0A
LISTEN
).
tx_queue
: Die Größe der Sendewarteschlange.
rx_queue
: Die Größe der Empfangswarteschlange.
uid
: Die Benutzer-ID, die den Socket besitzt.
inode
: Die Inode-Nummer des Sockets.
Sie können auch UDP-Sockets anzeigen, indem Sie sich die Datei /proc/net/udp
ansehen:
cat /proc/net/udp
Und für IPv6-Sockets können Sie /proc/net/tcp6
und /proc/net/udp6
prüfen.
Obwohl Sie diese Dateien normalerweise nicht direkt für den täglichen Gebrauch analysieren werden, bietet das Verständnis, dass hier die Netzwerkinformationen ihren Ursprung haben, einen tieferen Einblick in die Art und Weise, wie Linux Netzwerkverbindungen verwaltet. Befehle wie ss
und netstat
lesen im Wesentlichen die Daten aus diesen Dateien und formatieren sie für ein leichteres Verständnis.
Sie haben nun die Rohinformationen über Sockets im /proc/net
-Dateisystem erkundet.
Klicken Sie auf Weiter, um das Lab abzuschließen.