Изменение правил resolvconf на лету

Случилась ситуация, когда надо было заменить содержимое /etc/resolv.conf стандартными средствами resolvconf, используемого в Ubuntu.

Обычное вписывание дополнительных nameserver в /etc/resolvconf/resolv.conf.d/base и последующий перезапуск resolvconf не дают нужного эффекта, так как данные из этого файла идут с самым низким приоритетом. И в любом случае данные прописанные в конфиге интерфейса останутся самыми важными и будут использоваться они.

Так вот, чтобы удалить локальный DNS и добавить Яндекс.DNS необходимо удалить информацию от интерфейса:

resolvconf -d eth0  

и дать на вход в обычном формате resolv.conf нужную информацию для этого же интерфейса:

echo -e "nameserver 93.158.134.213\nnameserver 213.180.204.213\n"|resolvconf -a eth0  

Теперь основными NS являются Яндекс.DNS. Перезапускать ничего не нужно, меняется все на лету. Стоит учесть, что при перезагрузке эти данные будут утеряны. Поэтому стоит внести необходимые изменения в /etc/network/interfaces и /etc/resolvconf/resolv.conf.d/base.

comments powered by Disqus