Zum Inhalt springen

Sysctl: Unterschied zwischen den Versionen

Aus Foxwiki
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:


== Beschreibung ==
== Beschreibung ==
'''''sysctl''''' stellt ein Benutzerraum-Frontend für Kernel-Parameter im virtuellen Dateisystem [[/proc/sys]] bereit
; Benutzerspace-Frontend für Kernel-Parameter
* Der Zugriff auf diese Parameter erfolgt über das Pseudo-Dateisystem [[Procfs]], das auf ''/proc'' eingehängt sein muss
* Zugriff erfolgt über das Pseudo-Dateisystem [[Procfs]]
* Schreibzugriffe über ''sysctl -w'' ändern Werte im laufenden Kernel, sind jedoch nicht dauerhaft und gehen nach einem Neustart verloren
* das auf ''/proc'' eingehängt sein muss
 
; Schreibzugriffe
Schreibzugriffe über ''sysctl -w'' ändern Werte im laufenden Kernel
* sind jedoch nicht dauerhaft und gehen nach einem Neustart verloren


; Einstellungen
; Einstellungen
Zeile 81: Zeile 85:
| -V || --version || || Versionsinformation anzeigen und beenden
| -V || --version || || Versionsinformation anzeigen und beenden
|}
|}
== Anwendung ==
; Alle verfügbaren Kernel-Parameter anzeigen
<syntaxhighlight lang="bash" highlight="1-8" line copy>
/sbin/sysctl -a
</syntaxhighlight>
; Nur den aktuellen Hostnamen ausgeben
<syntaxhighlight lang="bash" highlight="1-8" line copy>
/sbin/sysctl -n kernel.hostname
</syntaxhighlight>
; Den Domainnamen zur Laufzeit setzen
<syntaxhighlight lang="bash" highlight="1-8" line copy>
/sbin/sysctl -w kernel.domainname="example.com"
</syntaxhighlight>
; Einstellungen aus der Konfigurationsdatei neu einlesen
<syntaxhighlight lang="bash" highlight="1-8" line copy>
/sbin/sysctl -p/etc/sysctl.conf
</syntaxhighlight>
; Nur Parameter auflisten, deren Name ''forward'' enthält
<syntaxhighlight lang="bash" highlight="1-8" line copy>
/sbin/sysctl -a --pattern forward
</syntaxhighlight>
; Nur Parameter auflisten, deren Name auf ''forward'' endet
<syntaxhighlight lang="bash" highlight="1-8" line copy>
/sbin/sysctl -a --pattern forward$
</syntaxhighlight>
; Mit regulärem Ausdruck nur ARP-Parameter für eth0/wlan0 anzeigen
<syntaxhighlight lang="bash" highlight="1-8" line copy>
/sbin/sysctl -a --pattern 'net.ipv4.conf.(eth|wlan)0.arp'
</syntaxhighlight>
; Systemweit alle Konfigurationsdateien einlesen und nur IPv6-Parameter anzeigen
<syntaxhighlight lang="bash" highlight="1-8" line copy>
/sbin/sysctl --system --pattern '^net.ipv6'
</syntaxhighlight>
== 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>





Aktuelle Version vom 4. Dezember 2025, 12:10 Uhr

sysctl - Kernel-Parameter zur Laufzeit konfigurieren

Beschreibung

Benutzerspace-Frontend für Kernel-Parameter
  • Zugriff erfolgt über das Pseudo-Dateisystem Procfs
  • das auf /proc eingehängt sein muss
Schreibzugriffe

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