Остановить сетевой менеджер от обновления resolv.conf

Я изменил сервер имен в /etc/resolv.conf, но когда я подключил vpn в CentOS, сетевой менеджер перенес мой предыдущий DNS обратно в /etc/resolv.conf.

Я не хочу, чтобы сетевой менеджер добавлял DNS-серверы, полученные от DHCP, в мой /etc/resolv.conf.

Любое решение?

1 ответ

Способ "грубой силы" для предотвращения обновления файла в Linux может состоять в использовании chattr, например, вы можете сделать:

chattr +i /etc/resolv.conf

Удалить i - Immutable атрибут, чтобы вы могли изменить файл снова запустить:

chattr -i /etc/resolv.conf

Другим способом может быть настройка /etc/NetworkManager/NetworkManager.conf не изменять DNS:

[main]
dns=none

От мужчины:

dns
       Set the DNS (resolv.conf) processing mode.

       default: The default if the key is not specified. NetworkManager will update
       resolv.conf to reflect the nameservers provided by currently active connections.

       dnsmasq: NetworkManager will run dnsmasq as a local caching nameserver, using a "split
       DNS" configuration if you are connected to a VPN, and then update resolv.conf to point
       to the local nameserver.

       none: NetworkManager will not modify resolv.conf.

Установка dns=noneвсе еще может позволить сетевому менеджеру что-то сломать - если DOMAIN также указан в ifcfg-файле, NM по-прежнему будет записывать файл, но пропускает любые dns:es вместо этого рекомендует установить следующее в разделе [main]:

rc-manager=unmanaged 

это говорит диспетчеру сети не трогать /etc/resolv.conf вообще по документации

Я прочитал несколько страниц stackru, на которых рекомендуется установить rc-manager=unmanaged вместо dns=none. Я просто хотел указать на следующую документацию со страницы руководства относительно dns=none.

нет: NetworkManager не будет изменять resolv.conf. Это означает, что rc-manager неуправляемый.

Другие вопросы по тегам