Менеджер мережі: як зупинити оновлення nm /etc/resolv.conf


26

Я не хочу, щоб менеджер мережі додав до мого сервера DNS, отримані від DHCP /etc/resolv.conf.

Під час налаштування з GUI / Connections / IPV4 та вибору методу Автоматичний (лише адреса) він все ще додає DNS-сервери, отримані через DHCP.

Чи можливо це зробити за з'єднання (конкретний ssid?)


Якщо ви вибрали метод "Автоматичні (DHCP) адреси)", NetworkManager не змінює або не повинен змінювати резолюцію.conf при активації цього з'єднання. Якщо NetworkManager насправді додає адреси до резолюції.conf, незважаючи на налаштування "лише адреси", у NetworkManager є помилка, і ви повинні повідомити про цю помилку за допомогою Launchpad. Щоб зупинити NetworkManager від зміни резолюції.conf, слід вибрати "Тільки автоматичні (DHCP) адреси" у всіх конфігураціях підключення, які стають активними у вашій системі.
jdthood

1
Ви можете або використовувати GUI у налаштуваннях IPv4 підключення та вибрати режим "лише адреси" в режимі, або робити те, що він робить самостійно, відредагувавши відповідний файл з'єднання в / etc / NetworkManager / system-connection / та додавши ignore-auto -dns = вірна лінія до розділу [ipv4].
Саша Пачев

Відповіді:


32

Один із способів зупинити мережевий менеджер від додавання dns-серверів у /etc/resolv.confфайл:

Спочатку відкрийте файл nm conf /etc/NetworkManager/NetworkManager.conf:

sudo vim /etc/NetworkManager/NetworkManager.conf

І додайте це до [main]розділу:

dns=none

Збережіть і вийдіть.


Головний розділ [main], а НЕ[Main]
AB

/etc/resolv.conf- це типово посилання - ви впевнені, що це робить непорушним і ціль посилання також незмінна?
муру

5
Це не працює для мене в debian jessie
Dimitri Kopriwa

5
Це не працює на Ubuntu 18.04
LuizAngioletti

1
Мені довелося, sudo service network-manager restartперш ніж зміни в файл .conf набули чинності.
Кріс Мур

3

Мій особистий фаворит - це використання лінії supersede domain-name-serversв /etc/dhcp/dhclient.conf. Незалежно від того, що надає точка доступу dns, ваш ubuntu завжди буде використовувати ті dns, які вказані вdhclient.conf

Зразок з мого файлу

#send host-name "andare.fugue.com";
send host-name = gethostname();
#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
#send dhcp-lease-time 3600;
#supersede domain-name "fugue.com home.vix.com";
supersede domain-name-servers 208.67.220.220;
#prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
    domain-name, domain-name-servers, domain-search, host-name,
    dhcp6.name-servers, dhcp6.domain-search,
    netbios-name-servers, netbios-scope, interface-mtu,
    rfc3442-classless-static-routes, ntp-servers,
    dhcp6.fqdn, dhcp6.sntp-servers;
#require subnet-mask, domain-name-servers;

створення рядка, як описано (з використанням сервера 8.8.8.8), не працює на Ubuntu 18.04.
LuizAngioletti

3
@LuizAngioletti 18.04 використовує різні типи застосунків мережевого менеджера netplan. Ця відповідь була написана до випусків до 18.04. Я можу оновити його пізніше.
Сергій Колодяжний

2

/etc/resolv.confє посиланням на /run/resolvconf/resolv.conf. NetworkManager не оновлює /etc/resolv.conf безпосередньо (лише оновлення /run/resolvconf/resolv.conf). Так:

  • видалити symlink ( rm /etc/resolv.conf)
  • написати свою власну версію /etc/resolv.conf

1
Я знаю, що це форум ubuntu, але, хоча гуглінг для центів, це все-таки був моїм першим результатом google, тому розміщую коментар для майбутніх googlers центів. це не вирішило мою проблему на центосах. Здається, менеджер мережі centos безпосередньо працює над /etc/resolv.conf.
Томмі

Це, безумовно, не відповідає дійсності Debian Stretch. Він видаляє ваш файл і замінює його іншим символьним посиланням. Дуже дратує.
HörmannHH

Ось один із (віртуалізованих) Fedora 25, що використовує nmcli: /etc/sysconfig/network-scripts/ifcfg-ens3Ми бачимо, PEERDNS=yesщо означає (у цьому випадку неправильну) інформацію про DNS отримує DHCP, і вона закінчується в /etc/resolv.conf. Я просто хочу 127.0.0.1 як сервер імен. Запуск nmcli con mod ens3 ipf4.ignore-auto.dns yesрезультат в PEERDNS=noу файлі інтерфейсу конфігурації. Однак /etc/resolv.confвсе ще є бродячий namseserverзапис, тому якщо доведеться перезапустити з'єднання nmcli con down ens3; nmcli con up ens3. Дивіться також: certdepot.net/rhel7-configure-ipv4-adadresses
Девід Тонхофер

У Ubuntu 18.04 перезапуск 'перезавантаження менеджера сервісної мережі' призведе до того, що NM замінить /etc/resolv.conf, навіть якщо це жорсткий файл, а не симпосилання.
LuizAngioletti

0

Що я робив на Debian Stretch:

  • rm /etc/resolv.conf ### (симпосилання)
  • торкніться /etc/resolv.conf
  • echo "nameserver xxxx" >> /etc/resolv.conf

Якщо "xxxx" є вашою кращою IP-адресою сервера DNS, наприклад, від OpenDNS, Google або Cloudflare.

Дякую за ідею Taha Jahangir! Я можу підтвердити, що ваша пропозиція працювала для мого розповсюдження Debian Stretch

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.