service networking restart
это не всегда надежный способ понижения уровня всех интерфейсов.
То resolvconf -u
команда обновляет только resolv.conf
из собственной базы данных resolvconf. Вам необходимо обновить базу данных.
Чтобы обновить базу данных, вы должны вызвать resolvconf с помощью -a
или -d
вариант. Это происходит за кулисами, когда вы запускаете ifup или ifdown. Таким образом, обычно, как и при любом другом изменении в /etc/network/interfaces
, чтобы активировать изменения в параметрах dns-*, вы должны отключить соответствующий интерфейс и снова включить его. Или вы можете перезагрузиться.
Если вы хотите внести изменения в интерфейс, не отключая его (возможно, потому, что вы удаленно администрируете компьютер и подключены через этот интерфейс, естественно), то вы можете добиться того же результата, запустив resolvconf непосредственно из командной строки. Для этого требуется немного больше знаний о семантике resolvconf. Предположим, что соответствующая строфа /e/n/i является
iface IIII FFFF static address ... ... dns-nameservers X.X.X.X Y.Y.Y.Y dns-search SSSS
где FFFF - это семейство адресов ("inet" или "inet6").
Чтобы активировать эти параметры dns-*, вы запускаете resolvconf следующим образом (да, с новыми строками в строке, передаваемой в resolvconf).
echo "nameserver X.X.X.Xnameserver Y.Y.Y.Ysearch SSSS" | sudo resolvconf -a IIII.FFFF
Для строфы, приведенной в вопросе, это было бы следующим.
echo "nameserver 192.168.3.45nameserver 192.168.8.10search example.com" | sudo resolvconf -a eth0.inet
Обратитесь к странице руководства resolvconf(8) и файлу README пакета resolvconf (/usr/share/doc/resolvconf/README.gz ) для получения дополнительной информации.