
私はすべてのインターフェース(4つあります)のIPv6自動設定をオフにしようとしています。
net.ipv6.conf.all.autoconf = 0
私のsysctl設定(以下/etc/sysct.d
)では、設定はどのインターフェースにも適用されませんが、net.ipv6.conf.all.autoconf
パラメータについては機能するため、次のコマンドを実行します:`
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
それから、オンザフライ設定を試してみました
sysctl -w net.ipv6.conf.all.autoconf=0
しかし、どちらも機能していません。これに対する回避策をご存知ですか? 1 つずつ (net.ipv6.conf.eth3.autoconf = 0
手動で) 実行したくない理由は、インターフェイスが複数ある場合もあるためです (これらは常に接続されているわけではありません)
答え1
要約
for sInterface in /proc/sys/net/ipv6/conf/*; do sysctl --write $(echo $sInterface.autoconf=0 | sed "s#/#.#g" | sed "s/.proc.sys.//g"); done
それをすべきです。
長いバージョン:
sysctl
実際にファイルの内容を変更する/proc/sys
net.ipv6.conf.all.autoconf
したがって、物理的には/proc/sys/net/ipv6/conf/all/autoconf
- そこで繰り返して
/proc/sys/net/ipv6/conf/
- 区切り文字を使用してすべて
/
を に 変更します.
sed
#
- 標準の区切り文字を使用して、
.proc.sys.
文字列から再度削除します。sed
/
.autoconf=0
インターフェースに追加する- そして応募する
sysctl --write $()
注記:root
実行されていない場合は、sudo sysctl --write $()
代わりに...