Wie man prüft, ob ein sysctl-Parameter in Linux festgelegt ist

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie prüfen können, ob ein bestimmter sysctl-Parameter in Linux festgelegt ist. Wir werden drei Methoden untersuchen, um dies zu erreichen: Auflisten aller Kernel-Parameter mit sysctl -a, Prüfen der sysctl-Konfigurationsdatei des Systems unter /etc/sysctl.conf und direktes Überprüfen des Parameterwerts im /proc/sys-Dateisystem. Am Ende dieses Labs verfügen Sie über die Fähigkeiten, um die Kernel-Parameter-Einstellungen auf Ihrem Linux-System effektiv zu überprüfen und zu verstehen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/BasicFileOperationsGroup -.-> linux/less("File Paging") subgraph Lab Skills linux/cat -.-> lab-558769{{"Wie man prüft, ob ein sysctl-Parameter in Linux festgelegt ist"}} linux/less -.-> lab-558769{{"Wie man prüft, ob ein sysctl-Parameter in Linux festgelegt ist"}} end

Auflisten von sysctl-Parametern mit sysctl -a

In diesem Schritt werden wir untersuchen, wie Sie Kernel-Parameter mithilfe des sysctl-Befehls anzeigen und verstehen können. Der Linux-Kernel verwaltet viele Aspekte des Systemverhaltens, und diese Verhaltensweisen werden durch Parameter gesteuert, die zur Laufzeit angezeigt und manchmal auch geändert werden können.

Der sysctl-Befehl wird verwendet, um Kernel-Parameter zur Laufzeit zu ändern. Diese Parameter befinden sich normalerweise im Verzeichnis /proc/sys/.

Um eine Liste aller verfügbaren Kernel-Parameter und ihrer aktuellen Werte anzuzeigen, können Sie den Befehl sysctl -a verwenden. Die Option -a teilt sysctl mit, alle Parameter anzuzeigen.

Öffnen Sie Ihr Terminal, wenn es noch nicht geöffnet ist. Denken Sie daran, dass Sie das Symbol für das Xfce Terminal auf der linken Seite Ihres Desktops finden können.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

sysctl -a

Sie werden eine lange Ausgabe sehen, ähnlich wie diese (die genaue Ausgabe variiert je nach System):

abi.vsyscall32 = 1
fs.aio-max-nr = 1048576
fs.aio-nr = 0
fs.dentry-state = 100000, 96000, 0, 0, 0
fs.dir-notify-enable = 1
fs.file-max = 9223372036854775807
fs.file-nr = 1024      0       9223372036854775807
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 128
fs.inotify.max_user_watches = 524288
...

Diese Ausgabe zeigt den Namen jedes Parameters (z. B. fs.file-max) und seinen aktuellen Wert. Diese Parameter steuern verschiedene Aspekte des Kernels, wie Netzwerke, Dateisystemverhalten, Speicherverwaltung und vieles mehr.

Das Durchscrollen dieser Liste kann überwältigend sein, aber es gibt Ihnen einen umfassenden Überblick darüber, was der Kernel verwaltet. Sie können die Leertaste verwenden, um Seite für Seite nach unten zu scrollen, und q drücken, um die Ansicht zu beenden, wenn die Ausgabe lang ist und von einem Pager wie less angezeigt wird.

Für den Moment reicht es aus, den Befehl auszuführen, um diesen Schritt abzuschließen. Sie haben erfolgreich alle Kernel-Parameter aufgelistet.

Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.

Überprüfen der sysctl-Konfiguration mit cat /etc/sysctl.conf

Im vorherigen Schritt haben Sie mithilfe von sysctl -a eine lange Liste von Kernel-Parametern gesehen. Während sysctl -a die aktuellen Werte anzeigt, können diese Werte beim Booten aus Konfigurationsdateien festgelegt werden.

Eine der Hauptkonfigurationsdateien für sysctl-Parameter ist /etc/sysctl.conf. Diese Datei enthält Einstellungen, die beim Systemstart angewendet werden.

Lassen Sie uns den Inhalt dieser Konfigurationsdatei mithilfe des cat-Befehls anzeigen. Der cat-Befehl wird verwendet, um den Inhalt von Dateien anzuzeigen.

Geben Sie den folgenden Befehl in Ihrem Terminal ein und drücken Sie die Eingabetaste:

cat /etc/sysctl.conf

Sie werden den Inhalt der Datei /etc/sysctl.conf sehen. Diese Datei enthält oft auskommentierte Zeilen (beginnend mit #), die den Zweck verschiedener Einstellungen erklären, sowie Zeilen, die bestimmte Kernel-Parameter im Format Parameter = Wert festlegen.

Hier ist ein Beispiel für das, was Sie sehen könnten (der genaue Inhalt kann variieren):

## /etc/sysctl.conf - Konfigurationsdatei für das Setzen von Systemvariablen
#
## Weitere Informationen finden Sie in sysctl(8) und sysctl.conf(5).

## Kernel-sysctl-Konfigurationsdatei für Debian GNU/Linux
#
## Bei binären Werten bedeutet 0 deaktiviert und 1 aktiviert. Details finden Sie in sysctl(8).

## Entfernen Sie die Kommentarzeichen, um die Software-Suspend-Funktion zu aktivieren
#kernel.suspend_state = 1

## Entfernen Sie die Kommentarzeichen, um die IPv4-Weiterleitung zu aktivieren
#net.ipv4.ip_forward = 1

## Entfernen Sie die Kommentarzeichen, um die IPv6-Weiterleitung zu aktivieren
#net.ipv6.conf.all.forwarding = 1

## Entfernen Sie die Kommentarzeichen, um den TCP SYN Cookie-Schutz zu aktivieren
## Dieser schützt vor SYN-Flood-Angriffen
#net.ipv4.tcp_syncookies = 1

## Erhöhen Sie die maximale Anzahl offener Dateien für das System
#fs.file-max = 100000

## Erhöhen Sie die maximale Anzahl von TCP-Verbindungen
#net.ipv4.tcp_max_syn_backlog = 2048
#net.ipv4.tcp_max_tw_buckets = 4096

Zeilen, die nicht auskommentiert sind (nicht mit # beginnen), sind aktive Einstellungen, die angewendet werden. Beispielsweise würde eine Zeile wie net.ipv4.ip_forward = 1 die IP-Weiterleitung aktivieren.

Das Anzeigen dieser Datei hilft Ihnen zu verstehen, welche Kernel-Parameter beim Systemstart explizit festgelegt werden.

Sie haben erfolgreich den Inhalt der Haupt-sysctl-Konfigurationsdatei angezeigt.

Klicken Sie auf Weiter, um zum nächsten Schritt zu gelangen.

Überprüfen von Parametern in /proc/sys

In den vorherigen Schritten haben Sie sysctl -a verwendet, um Kernel-Parameter aufzulisten, und cat /etc/sysctl.conf, um die Konfigurationsdatei anzuzeigen. Jetzt wollen wir sehen, wo diese Parameter tatsächlich im Dateisystem repräsentiert werden.

Die von sysctl verwalteten Kernel-Parameter werden über ein spezielles virtuelles Dateisystem unter /proc/sys zugänglich gemacht. Dieses Dateisystem speichert keine echten Dateien auf der Festplatte, sondern bietet eine Schnittstelle zu Kernel-Datenstrukturen.

Die Struktur des Verzeichnisses /proc/sys spiegelt die hierarchischen Namen der sysctl-Parameter wider. Beispielsweise entspricht der Parameter net.ipv4.ip_forward der Datei /proc/sys/net/ipv4/ip_forward.

Lassen Sie uns erneut den cat-Befehl verwenden, um den Wert eines bestimmten Parameters direkt aus dem /proc/sys-Dateisystem anzuzeigen. Wir werden uns den Parameter kernel.hostname ansehen, der den Hostnamen des Systems anzeigt.

Geben Sie den folgenden Befehl in Ihrem Terminal ein und drücken Sie die Eingabetaste:

cat /proc/sys/kernel/hostname

Sie sollten den Hostnamen des Systems sehen, der in dieser Umgebung wahrscheinlich labex ist:

labex

Jetzt schauen wir uns ein weiteres Beispiel an, den Parameter fs.file-max, den wir in der Ausgabe von sysctl -a gesehen haben.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

cat /proc/sys/fs/file-max

Sie werden die aktuelle maximale Anzahl offener Dateien auf dem System sehen:

9223372036854775807

Dies zeigt, dass die Werte, die Sie mit sysctl -a sehen, direkt aus Dateien im Verzeichnis /proc/sys zugänglich und lesbar sind. Sie können Standard-Dateimanipulationsbefehle wie cat verwenden, um ihre Werte zu lesen.

Das Verständnis des /proc/sys-Dateisystems ist der Schlüssel für die Arbeit mit Kernel-Parametern, da es der zugrunde liegende Mechanismus ist, mit dem sysctl interagiert.

Sie haben erfolgreich Kernel-Parameter überprüft, indem Sie ihre entsprechenden Dateien in /proc/sys angesehen haben.

Klicken Sie auf Weiter, um dieses Lab abzuschließen.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man prüft, ob ein sysctl-Parameter in Linux festgelegt ist. Wir haben begonnen, indem wir den Befehl sysctl -a verwendet haben, um alle verfügbaren Kernel-Parameter und ihre aktuellen Werte aufzulisten. Dies hat uns einen umfassenden Überblick über die Laufzeitkonfiguration des Kernels gegeben.

Als Nächstes haben wir untersucht, wie man die dauerhafte sysctl-Konfiguration überprüft, indem wir die Datei /etc/sysctl.conf mit dem cat-Befehl betrachtet haben. Schließlich haben wir gelernt, wie man den aktuellen Wert eines bestimmten Parameters überprüft, indem man direkt die entsprechende Datei im Verzeichnis /proc/sys untersucht. Diese Schritte bieten mehrere Methoden, um den Zustand von Kernel-Parametern zu verstehen und zu bestätigen.