Zum Inhalt springen

Sysctl: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 81: Zeile 81:
| -V || --version || || Versionsinformation anzeigen und beenden
| -V || --version || || Versionsinformation anzeigen und beenden
|}
|}
== Konfiguration ==
=== Dateien ===
{| class="wikitable options big"
|-
! Datei !! Beschreibung
|-
| [[/proc/sys]] || Virtuelles Verzeichnis mit Kernel-Parametern. Laufzeit-Interface, auf das ''sysctl'' lesend und schreibend zugreift
|-
| [[/etc/sysctl.conf]] || Klassische globale Konfigurationsdatei für persistente Kernel-Parameter. Wird nach den Dateien aus ''sysctl.d'' eingelesen
|-
| /run/sysctl.d/*.conf || Temporäre, zur Laufzeit erzeugte Konfigurationsfragmente mit höchster Priorität
|-
| /etc/sysctl.d/*.conf || Vom Administrator verwaltete persistente Konfigurationsfragmente. Überschreiben Einträge aus ''/usr/lib/sysctl.d'' und ''/lib/sysctl.d''
|-
| /usr/local/lib/sysctl.d/*.conf || Konfigurationsfragmente für lokal installierte Software außerhalb der Distribution
|-
| /usr.lib/sysctl.d/*.conf || Von der Distribution bereitgestellte Standardkonfiguration für Kernel-Parameter
|-
| /lib/sysctl.d/*.conf || Zusätzlicher Pfad für distributionsseitige Konfiguration auf bestimmten Systemen
|}
=== Lade-Reihenfolge und Priorität ===
=== Lade-Reihenfolge und Priorität ===
Die Konfigurationsdateien werden je nach System unterschiedlich eingelesen:
* Auf klassischen Systemen mit sysctl lädt der Aufruf
:* ''sysctl --system'' standardmäßig:
:# ''/'''run'''/sysctl.d/*.conf'',
:# ''/'''etc/sysctl.d'''/*.conf'',
:# ''/'''usr/local/lib'''/sysctl.d/*.conf'',
:# ''/'''usr/lib'''/sysctl.d/*.conf'',
:# ''/'''lib'''/sysctl.d/*.conf''
:# ''/'''etc'''/sysctl.conf''
* Spätere Einträge überschreiben frühere mit demselben Schlüssel
* Auf [[systemd]]-basierten Systemen werden Kernel-Parameter beim Booten von ''systemd-sysctl'' anhand der Dateien in ''sysctl.d'' gesetzt
:* Je nach Distribution wird ''/etc/sysctl.conf'' dabei möglicherweise nicht mehr ausgewertet
* Für lokale Anpassungen wird empfohlen, eine eigene Datei wie ''/etc/sysctl.d/99-local.conf'' anzulegen, statt ''/etc/sysctl.conf'' direkt zu bearbeiten
=== Bespiel ===
; Router
<syntaxhighlight lang="ini" highlight="" copy line>
# /etc/sysctl.d/99-local.conf
# Router: IP-Forwarding und Connection-Tracking
# IPv4-Forwarding aktivieren (Routing/NAT/VPN)
net.ipv4.ip_forward = 1
# Reverse-Path-Filter gegen IP-Spoofing
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Redirects deaktivieren
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
# ICMP: einfache Schutzmaßnahmen
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Connection-Tracking für viele Verbindungen (NAT)
net.netfilter.nf_conntrack_max = 262144
net.netfilter.nf_conntrack_tcp_timeout_established = 600
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 30
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 15
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
</syntaxhighlight>





Version vom 29. November 2025, 11:26 Uhr

sysctl - Kernel-Parameter zur Laufzeit konfigurieren

Beschreibung

sysctl stellt ein Benutzerraum-Frontend für Kernel-Parameter im virtuellen Dateisystem /proc/sys bereit

  • Der Zugriff auf diese Parameter erfolgt über das Pseudo-Dateisystem Procfs, das auf /proc eingehängt sein muss
  • Schreibzugriffe über sysctl -w ändern Werte im laufenden Kernel, sind jedoch nicht dauerhaft und gehen nach einem Neustart verloren
Einstellungen

Persistent

Konfigurationsfragmente

  • /run/sysctl.d
  • /etc/sysctl.d
  • /usr/local/lib/sysctl.d
  • /usr/lib/sysctl.d
  • /lib/sysctl.d

Installation

sysctl ist Teil des Pakets procps

Aufruf

sysctl [options] [variable[=value]] [...]
sysctl -p [file or regexp] [...]

Optionen

Unix GNU Parameter Beschreibung
-n --values Nur den Wert ausgeben, ohne Parameternamen
-e --ignore Fehler für unbekannte Parameter ignorieren
-N --names Nur Parameternamen ausgeben (z. B. für programmierbare Completion)
-q --quiet Werte nicht auf stdout ausgeben
-w --write Kernel-Parameter (sysctl-Einstellungen) ändern
-p --load [=FILE] Einstellungen aus der angegebenen Datei laden, standardmäßig /etc/sysctl.conf
  • "-" als Dateiname: Lesen der Einstellungen von der Standardeingabe
  • Mit dieser Option werden Argumente von sysctl als Dateinamen interpretiert und in der angegebenen Reihenfolge eingelesen
  • Der Dateiname kann als regulärer Ausdruck angegeben werden
-a --all Alle aktuell verfügbaren Parameter und Werte anzeigen
--deprecated Veraltete Parameter in die Ausgabe von --all einbeziehen
-b --binary Wert ohne abschließenden Zeilenumbruch ausgeben
--system Einstellungen aus allen Systemkonfigurationsdateien laden
  • /run/sysctl.d/*.conf
  • /etc/sysctl.d/*.conf
  • /usr/local/lib/sysctl.d/*.conf
  • /usr/lib/sysctl.d/*.conf
  • /lib/sysctl.d/*.conf
  • /etc/sysctl.conf
-r --pattern pattern Nur Parameter anwenden bzw. anzeigen, deren Name zum Muster passt (erweiterte reguläre Ausdrücke)
-A Alias für -a
-d Alias für -h
-f Alias für -p
-X Alias für -a
-o Ohne Funktion, nur aus BSD-Kompatibilitätsgründen vorhanden
-x Ohne Funktion, nur aus BSD-Kompatibilitätsgründen vorhanden
-h --help Hilfetext anzeigen und beenden
-V --version Versionsinformation anzeigen und beenden



Anhang

Siehe auch

Dokumentation

Man-Page

Links

Projekt

  1. https://github.com/klaver/sysctl

Weblinks