Ubuntu 17.10: повторно включите IPv6
После успешного отключения 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. Есть один? Или есть стратегия для этого требования?
1 ответ
Записи в /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