После успешного отключения IPv6 с помощью этого сценария:
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
Я пытаюсь повторно позволить использовать этот сценарий:
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
Я проверил, что разрешать сценарий удаляет запрещать строки из sysctl.conf файла.
В каждом случае я проверяю результат с этим:
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
где '1' означает отключенный, и '0' означает нет.
Повторно разрешать часть не работает.
В каждом случае sysctl-p команда перезагружает/etc/sysctl.conf файл. Однако кажется, что перезагрузка просто вытягивает в ее буфер вместо того, чтобы перезаписать его полностью так, чтобы свойства отключения не были удалены.
Этот анализ корректен?
Если так, я не вижу опции очистить sysctl.conf кэш. Есть ли один? Или есть ли стратегия этого требования?
Записи в /etc/sysctl.conf
и любые файлы, включенные от него, указывают, какие sysctl настройки будут применены во время начальной загрузки, или когда Вы будете работать sudo sysctl -p
. Но отсутствие записи в этом файле означает, что такой sysctl (которых существуют тысячи) не будет изменен от любого значения, которое это в настоящее время содержит.
Вы удалили sysctl записи, которые отключили IPv6 из этого файла, но не кажется, что Вы на самом деле изменили сами sysctl настройки. Выполнение sudo sysctl -p
не изменил их, потому что они не были в /etc/sysctl.conf
.
Для возврата этих записей в их значения по умолчанию можно или перезагрузить систему или использование sysctl
установить их явно. Например:
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