Як відключити системне рішення в Ubuntu?


87

Як я можу відключити системне рішення в Ubuntu 17.04?

Відключення його systemctl disableне спрацювало, сервіс, здається, перезапущений (Networkmanager?)


10
Система-рішення не просто велика, вона також порушує спосіб роботи роздільної здатності dns, не завжди намагаючись вирішити в порядку, коли сервери dns задаються в конфігурації клієнта. Якщо сервер не вирішує домен, наступний у списку переміщується вгорі (Поетеринг дзвінків, що "пам'ять"). Детальну інформацію див. У цій темі .
LifeBoy

7
він також обходить правила iptables, що є жахливою ідеєю.
Spongman

Відповіді:


150

Цей метод працює над версіями Ubuntu 17.04 (Zesty), 17.10 (Artful), 18.04 (Bionic), 18.10 (Cosmic) та 19.04 (Disco):

Вимкніть та зупиніть службово-сервісну службу:

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved

Потім поставте наступний рядок у [main]розділі свого /etc/NetworkManager/NetworkManager.conf:

dns=default

Видаліть посилання /etc/resolv.conf

rm /etc/resolv.conf

Перезавантажте NetworkManager

sudo systemctl restart NetworkManager

Також пам’ятайте, що відключення systemd-resolutionvd може порушити роздільну здатність імені в VPN для деяких користувачів. Дивіться цю помилку на панелі запуску (Спасибі, Вінсент).


4
схоже, це не працює на Ubuntu 17.04. Альсі, конфігураційний файл є /etc/NetworkManager/NetworkManager.conf. Назвіть вирішення перерв, коли я роблю вище. системне вирішення відстійно великий час, тепер розв'язання VPN DNS для мене взагалі не працює належним чином. Прогрес помилок можна знайти тут: bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624317
Vincent Gerris,

5
Я думаю, ви повинні додати до вищезазначеної відповіді, що "apt-get install dnsmasq" слід робити після того, як системне вирішення було відключено.
LifeBoy

5
@LifeBoy Я не використовую dnsmasq. Я просто не використовую жодного локального сервера імен, не бачу значення цього.
Bastian Voigt

9
Для Ubuntu 18.04 все, що потрібно, - це запустити команди sudo systemctl відключити systemd-разрешено.сервис і службу sudo systemd. Це працювало для мене.
Даніель Орел

12
Дякую. SystemD руйнує Linux, перетворюючи його на щось надійне і зрозуміле для чогось, що працює за допомогою магії.
Forbesmyester

18

Нещодавно я перейшов на (k) Ubuntu 17.04 і також натрапив на зміну systemd.

Моя установка є досить типовою, я думаю, що у мене є постачальник DNS у своєму широкосмуговому HUB, і це моє основне джерело інформації для всіх пристроїв у моїй мережі (яких у мене є декілька).

У системі systemd є якась краса, але це не все погано, але що насправді погано - це документація, відсутність комунікації з боку команди Ubuntu та гун-хо "давайте просто змінимо її, незважаючи на те, що вона зламає для всіх" менталітет.

Рішення для мене після виривання волосся було змінити /etc/systemd/ разрешить.conf:

[Resolve]
DNS=192.168.1.254   # <-- change to your router address
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
Domains=lan         # <-- change to your localdomain name (maybe .local)
#LLMNR=yes  <-- I dabbled with this for a while but it doesn't matter
#DNSSEC=no
#Cache=yes
#DNSStubListener=udp

Не розуміючи, чому це не вийде, я зрозумів, що також потрібно було переключити /etc/resolv.conf на той, який надає systemd. Це не так у встановленому нестандартному пакеті (з невідомих мені причин).

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

Локальний DNS-сервер потім не використовується, і всі запити DNS надсилаються до мого HUB.

Я думаю, що це набагато краще рішення, ніж вирізання та введення якогось іншого рішення, оскільки systemd-resolutionv тепер за замовчуванням.

Пов'язана проблема btw полягає в тому, що /etc/nsswitch.conf є нейтралізованою.

Він повинен читати:

хости: файли mdns4_minimal dns [NOTFOUND = return] вирішити [! UNAVAIL = return] dns

Це заплутана конфігурація, оскільки [NOTFOUND = return] означає, що обробка закінчується там. Записи після цього ніколи не будуть використані.


1
І тоді мені потрібно змінювати адресу маршрутизатора в конфігурації кожного разу, коли я підключаюсь до нового WIFI? Ви серйозно? -1
Bastian Voigt

Я не здогадувався, що ти роумуєш з цим. Якщо ви є, залиште коментувати елементи конфігурації. Тоді вам слід отримати /etc/resolv.conf, який говорить: nameserver 8.8.8.8 nameserver 8.8.4.4
user2427436

1
Я не думаю, що потрібно редагувати файл разрешений.conf, якщо ви правильно налаштували netplan. тобто, netplan записує правильні значення у файл зв'язаного зв'язку ... PS SYSTEMD SUCKS!
g33kz0r

3

Якщо у вас є проблеми з витіканням вашої VPN і ви не можете зрозуміти, як налаштувати systemd (як я), ви можете видалити його способом, описаним у першій відповіді, але не додавати dns=defaultрядок, оскільки він активує сервер імен 127.0 .0.1. Щоб встановити маршрутизатор як dns, створіть у своїй /etc/resolvconf/resolv.conf.d/ папці файл "хвіст", додавши рядокnameserser 192.168.1.1

зробіть, ln -sf /var/run/resolved/resolv.conf /etc/resolv.confякщо ви зіпсували цей файл.


1
Дійсно? Для мене це працює саме так, як описано у моїй відповіді. Однозначно не використовується сервер імен 127.0.0.1. Я також думаю, що не дуже зручно кодувати IP вашого сервера імен у файлі config. Принаймні, я часто перемикаю wifi мережі, і кожен wifi має інший сервер імен
Bastian Voigt

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