
Ich versuche, die IPv6-Autokonfiguration für alle meine Schnittstellen (ich habe 4) zu deaktivieren. Ich möchte
net.ipv6.conf.all.autoconf = 0
In meiner Sysctl-Konfiguration (unter /etc/sysct.d
) werden die Einstellungen jedoch für keine Schnittstelle übernommen, für die net.ipv6.conf.all.autoconf
Parameter funktioniert es jedoch, also führe ich den folgenden Befehl aus: `
sysctl -a | grep "net\.ipv6\.conf" | grep "autoconf"
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.eth0.autoconf = 1
net.ipv6.conf.eth1.autoconf = 1
net.ipv6.conf.eth2.autoconf = 1
net.ipv6.conf.eth3.autoconf = 1
Dann habe ich es mit der On-the-Fly-Einstellung versucht mit
sysctl -w net.ipv6.conf.all.autoconf=0
Aber beides funktioniert nicht. Kennen Sie einen Workaround dafür? Der Grund, warum ich es nicht einzeln ( net.ipv6.conf.eth3.autoconf = 0
manuell) machen wollte, ist, dass ich manchmal auch mehrere Schnittstellen habe (diese sind einfach nicht immer verbunden).
Antwort1
Kurz zusammengefasst
for sInterface in /proc/sys/net/ipv6/conf/*; do sysctl --write $(echo $sInterface.autoconf=0 | sed "s#/#.#g" | sed "s/.proc.sys.//g"); done
Sollte es tun.
Die Langfassung:
sysctl
ändert tatsächlich den Dateiinhalt in/proc/sys
net.ipv6.conf.all.autoconf
befindet sich somit physisch in/proc/sys/net/ipv6/conf/all/autoconf
- also iterieren wir über
/proc/sys/net/ipv6/conf/
- Wir ändern alles
/
in.
die Verwendungsed
des#
Trennzeichens - entfernen wir
.proc.sys.
wieder aus dem String, indem wirsed
den Standardtrennzeichen verwenden/
. - Wir ergänzen
.autoconf=0
die Schnittstelle - und bewerben Sie sich mit
sysctl --write $()
Notiz:Wenn Sie nicht so laufen, wie root
Sie sollten, tun Sie sudo sysctl --write $()
stattdessen Folgendes ...