Den Wert einer sysctl-Variablen zu überprüfen ist so einfach wie
sysctl <variable name>
Übrigens ist das Setzen einer sysctl-Variablen so einfach wie
sudo sysctl -w <variable name>=<value>
aber auf diese Weise vorgenommene Änderungen werden wahrscheinlich nur bis zum nächsten Neustart gültig sein.
Welcher der Konfigurationsorte ist /etc/sysctl.conf
oder /etc/sysctl.d/
, hat Vorrang, hier ist was /etc/sysctl.d/README
Datei sagt:
Endbenutzer können 60-*.conf und höher oder /etc/sysctl.conf verwenden direkt, was alles in diesem Verzeichnis überschreibt .
Nachdem Sie die Konfiguration an einem der beiden Orte bearbeitet haben, können die Änderungen mit
angewendet werdensudo sysctl -p
Diese Art von Zeug steht normalerweise in /proc
und/oder /sys
Kernel-Schnittstellen (beachten Sie zunächst, dass nichts in diesen Verzeichnissen eine normale Datei auf der Festplatte ist, sie sind alle direkte Verbindungen zum Kernel).
Also zB:
»for x in /proc/sys/net/ipv4/conf/*/rp_filter; do echo -ne "$x "`cat $x`"\n"; done
/proc/sys/net/ipv4/conf/all/rp_filter 0
/proc/sys/net/ipv4/conf/default/rp_filter 1
/proc/sys/net/ipv4/conf/em1/rp_filter 1
/proc/sys/net/ipv4/conf/lo/rp_filter 0
/proc/sys/net/ipv4/conf/wlan0/rp_filter 1
Sieht so aus, als hätte ich rp_filter für em1, wlan0 und "default" eingestellt. Sie können sie setzen oder aufheben, indem Sie einfach in das Datei-Handle schreiben:
»cd /proc/sys/net/ipv4/conf/lo
»echo 1 > rp_filter
»cat rp_filter
1
»echo 0 > rp_filter
»cat rp_filter
0
Wie bereits erwähnt, handelt es sich um eine direkte Kommunikation mit dem Kernel, sodass dies sofort wirksam wird. Diese sind nicht Konfigurationsdateien. Wenn Sie versuchen, etwas falsch zu machen:
»echo whatever > rp_filter
bash: echo: write error: Invalid argument
Was natürlich nicht heißt, dass man die Dinge auf diese Weise nicht vermasseln kann. Und lesen Sie unbedingt die Kommentare unten.