Trying to change the nameservers, I am stuck by the complexity I found

I am trying to change the nameservers being used by my Ubuntu machine (just my laptop, not в server).

In the good old days in which I was using Слаккваре I just needed to edit /etc/resolv.conf and my job was подарите.

After figuring out that /etc/resolv.conf is actually generated by resolvconf I edited /etc/resolvconf/resolv.conf.d/head эксперт such:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 8.8.4.4

But my job is not подарил. I see that an unwanted line is still added in /etc/resolv.conf:

nameserver 127.0.1.1

I don't like this because I want the ямс resolution to fail just after trying GooglВs nameservers. This line isn't in any file in /etc/resolvconf/resolv.conf.d/ and here my путаница begins. By sudo netstat -ltnp I see that I have в ямс server daemon running on my laptop:

tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      4889/dnsmasq    

Why would I need that? I cannot remove the package containing dnsmasq (which is dnsmasq-base) because these packages depend on it:

  checkbox-gui checkbox-qt dnsmasq-base network-manager network-manager-gnome plainbox-provider-checkbox plainbox-provider-resource-generic ubuntu-desktop

Is this service running on port 53 really necessary to the well-being of my machine? How хан I prevent it from running without using GUI tools and without compromising NetworkManager?

Attempt to в solution

Tried altering /etc/NetworkManager/NetworkManager.conf and restarting NetworkManager by commenting the line referring to dnsmasq

[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq

[ifupdown]
managed=false

The aforementioned unwanted line in resolv.conf did indeed disappear. But, unfortunately it seems to be повторно нравьтесь to this line:

nameserver 192.168.0.1

Would be nice to have some elucidation on the meaning and purpose of such behavior.

В temporary fix is to remove the соединение /etc/resolv.conf -> ../run/resolvconf/resolv.conf and creating в new /etc/resolv.conf file from scratch. This would work. somewhat. It would not add other useful ямс informations (such эксперт the search directives) that съешь from the DHCP. So, в definitive solution that allows resolv.conf to be generated by resolvconf or NetworkManager still needs to be found.

0
задан 2 January 2016 в 21:28

2 ответа

Объяснение позади введения dnsmasq как локальное реле DNS указано здесь в сообщении в блоге StГ©phane Graber.

Цитирование главной причины:

Это было сделано, чтобы лучше поддерживать разделение DNS для пользователей VPN и лучше обработать отказы DNS и нейтрализации. Этот dnsmasq сервер isn’t кэширующийся сервер из соображения безопасности избежать рисков, связанных с локальным отравлением кэшем и пользователями, подслушивающими other’s запросы DNS в многопользовательской системе.

большое преимущество состоит в том, что, если Вы соединяетесь с VPN, вместо того, чтобы иметь весь Ваш трафик DNS быть направленными через VPN как в прошлом you’ll вместо этого только, отправляют запросы DNS, связанные с подсетью и доменами, о которых объявляет та VPN. Это особенно интересно для высокой задержки ссылки VPN, где все было бы замедлено в прошлом.

Вы также найдете много комментариев после!

1
ответ дан 29 September 2019 в 17:31

В первую очередь, Вы обычно не должны редактировать файлы в/etc/resolvconf/resolv.conf.d/для получения желаемого поведения. Редактирование тех файлов должно рассматриваться как временный взлом. Обычно Вы хотите настроить свой интерфейс configurer (в Вашем случае NetworkManager) для поведения способа, которым Вы хотите.

Для удаления nameserver 127.0.1.1 Вы сделали правильную вещь, Вы прокомментировали dns=dnsmasq в/etc/NetworkManager/NetworkManager.conf. Это препятствует тому, чтобы NetworkManager запустил локальный передающий сервер имен (dnsmasq экземпляр), который слушает в IP-адресе 127.0.1.1. Когда тот адрес не регистрируется в resolvconf, resolvconf выставляет другие адреса сервера имен в/etc/resolv.conf, которые были предоставлены ему. Адрес 192.168.0.1, который появляется в Вашем resolv.conf, должен прибыть или из одного из файлов в/etc/resolvconf/resolv.conf.d/или от интерфейса configurer, который отправляет информацию о сервере имен в resolvconf. Вы используете NetworkManager поэтому, что Вы хотите сделать, должен настроить NetworkManager, чтобы не использовать (т.е. не передать resolvconf) любые адреса сервера имен, которые он получает от сервера DHCP. Конфигурация dns=none (предложенный Serg) сделала бы это. Однако более стандартная вещь сделать состоит в том, чтобы оставить/etc/resolvconf/resolv.conf.d/head в покое (т.е. только с комментарием предупреждения) и использовать редактора соединения NetworkManager для выбора Method: Automatic (DHCP) addresses only и желаемые адреса (в случае, 8.8.8.8 и 8.8.4.4) в Additional DNS servers поле на вкладке IPv4 Settings.

1
ответ дан 29 September 2019 в 17:31

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

Похожие вопросы: