
Estou tentando desativar a configuração automática de IPv6 para todas as minhas interfaces (tenho 4). Eu quero usar
net.ipv6.conf.all.autoconf = 0
Na configuração do meu sysctl (em /etc/sysct.d
) Mas as configurações não se aplicam a nenhuma interface, porém para o net.ipv6.conf.all.autoconf
parâmetro funciona, então execute o seguinte comando: `
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
Então tentei com a configuração on the fly com
sysctl -w net.ipv6.conf.all.autoconf=0
Mas nem está funcionando. Você conhece alguma solução alternativa para isso? As razões pelas quais eu não queria fazer isso uma por uma ( net.ipv6.conf.eth3.autoconf = 0
manualmente), porque às vezes eu tenho mais interfaces também (elas nem sempre estão conectadas)
Responder1
DR
for sInterface in /proc/sys/net/ipv6/conf/*; do sysctl --write $(echo $sInterface.autoconf=0 | sed "s#/#.#g" | sed "s/.proc.sys.//g"); done
deveria fazer isso.
A versão longa:
sysctl
realmente altera o conteúdo do arquivo em/proc/sys
net.ipv6.conf.all.autoconf
está, portanto, fisicamente localizado em/proc/sys/net/ipv6/conf/all/autoconf
- então nós iteramos
/proc/sys/net/ipv6/conf/
- mudamos tudo
/
para.
usingsed
usando o#
separador - removemos
.proc.sys.
da string novamente usandosed
o separador padrão/
. - nós adicionamos
.autoconf=0
à interface - e aplique com
sysctl --write $()
Observação:Se você não estiver correndo como root
deveria, faça um sudo sysctl --write $()
...