Почему /etc/resolv.conf не обновляется, когда я меняю DNS? [duplicate]

На этот вопрос уже есть ответ здесь:

Я пытался изменить свой dns на 8.8.8.8 8.8.4.4, но, похоже, не могу этого сделать.

В /etc/resolv.conf у меня есть

# 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 127.0.0.1

В /etc/resolvconf/resolv.conf.d/base я добавил

nameserver 8.8.8.8
nameserver 8.8.4.4

и перезагрузил с помощью sudo resolvconf -u

но ничего не меняется в /etc/resolv. conf

Если я неправильно пишу что-то в /etc/resolvconf/resolv.conf.d/base например добавляю ameserver 8.8.8.8 и перезагружаю cat /etc/resolv.conf теперь показывает.

# 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 127.0.0.1
ameserver 8.8.8.8

Что я должен сделать, чтобы изменить dns и как я могу проверить, сработало ли это?

4
задан 9 June 2017 в 03:41

2 ответа

Чтобы подробно остановиться на другом ответе здесь и разрешить некоторые беспорядки здесь при использовании Администратора сети для управления подключениями, это также включает небольшую версию dnsmasq. Это что 127.* адрес находится в Вашем resolv.conf - IP-адрес localhost, где dnsmasq связал с.

Администратор сети при конфигурировании с серверами DNS скажет dnsmasq что серверы DNS к релейным запросам к.

Если Вы устанавливаете 8.8.8.8, поскольку Ваш сервер DNS в настройках Администратора сети, dnsmasq передаст все запросы, которые не кэшируются к 8.8.8.8 для фактического разрешения, в то время как Ваш компьютер отправляет запросы DNS непосредственно в dnsmasq для обработки.

Сбивающий с толку, я знаю, но Вы не можете полагаться на resolv.conf для показа серверов DNS, используемых при использовании Администратора сети для управления подключениями.

5
ответ дан 1 December 2019 в 09:07

Сначала отмените все, что мы сделали в комментариях.

Используйте:

$ nmcli device 

, чтобы получить статус диспетчера сети:

DEVICE  TYPE      STATE        CONNECTION 
enp3s0  ethernet  connected    myConnection

Итак, мой интерфейс - enp3s0, а имя моего подключения - myConnection.

Я могу проверить, какой DNS-сервер использует мое соединение:

$ nmcli -f IP4.DNS connection show myConnection

Для вас, я думаю, он покажет:

ipv4.dns:                               127.0.0.1

Теперь давайте установим нужные вам DNS-запросы: [ 1125]

nmcli connection modify myConnecion ipv4.dns "8.8.8.8, 8.8.4.4"

После всех перезагрузите соединение:

nmcli connection down myConnecion
nmcli connection up myConnecion

Затем проверьте /etc/resolv.conf:

cat /etc/resolv.conf

Если он все еще говорит, что вы используете 127.0.0.1 как ваш DNS-сервер, то есть большая вероятность того, что вы используете "dnsmasq", чтобы убедиться, что запустите:

sudo ss -pln sport = 53

Вы должны получить имя dnsmasq как процесс, прослушивающий порт 53, так что все хорошо, и вы используете правильные DNS-имена, 127.0.0.1 - это просто слой между вами и серверами, которые вы установили.

Если вы хотите увидеть «8.8.8.8» в /etc/resolv.conf, то вам следует отключить «dnsmasq».

Открыть этот файл:

/etc/NetworkManager/NetworkManager.conf

Измените dns=dnsmasq на #dns=dnsmasq.

Наконец:

sudo systemctl restart NetworkManager

Теперь снова проверьте /etc/resolv.conf.

3
ответ дан 1 December 2019 в 09:07

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

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