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
Другие вопросы по тегам