Depois de desabilitar o IPv6 com sucesso usando este script:
echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf
echo 'net.ipv6.conf.default.disable_ipv6 = 1' >> /etc/sysctl.conf
echo 'net.ipv6.conf.lo.disable_ipv6 = 1' >> /etc/sysctl.conf
sysctl -p
Tento reativar usando este script:
sed -i "/net.ipv6.conf.all.disable_ipv6/d" /etc/sysctl.conf
sed -i "/net.ipv6.conf.default.disable_ipv6/d" /etc/sysctl.conf
sed -i "/net.ipv6.conf.lo.disable_ipv6/d" /etc/sysctl.conf
sysctl -p
Verifiquei que o script enable remove as linhas de desativação do arquivo sysctl.conf.
Em cada caso, verifico o resultado com isto:
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
onde '1' significa desabilitado e '0' significa não.
A peça de reativação não funciona.
Em cada caso, o comando sysctl -p recarrega o arquivo /etc/sysctl.conf. No entanto, parece que o recarregamento simplesmente entra em seu buffer, em vez de sobrescrevê-lo completamente, para que as propriedades de desativação não sejam removidas.
Esta análise está correta?
Nesse caso, não vejo uma opção para limpar o cache do sysctl.conf. Existe algum? Ou existe uma estratégia para esse requisito?
Responder1
As entradas /etc/sysctl.conf
e quaisquer arquivos incluídos nele especificam quais configurações de sysctl serão aplicadas no momento da inicialização ou quando você executar o sudo sysctl -p
. Mas a ausência de uma entrada neste arquivo significa que tal sysctl (dos quais existem milhares)não será alteradode qualquer valor que possua atualmente.
Você removeu as entradas do sysctl que desabilitavam o IPv6 deste arquivo, mas não parece que você realmente alterou as próprias configurações do sysctl. Correr sudo sysctl -p
não os mudou, porque eles não estavam no /etc/sysctl.conf
.
Para alterar essas entradas de volta aos padrões, você pode reinicializar o sistema ou usar sysctl
para defini-las explicitamente. Por exemplo:
sudo sysctl net.ipv6.conf.all.disable_ipv6=0
sudo sysctl net.ipv6.conf.default.disable_ipv6=0
sudo sysctl net.ipv6.conf.lo.disable_ipv6=0