DNS установлен на systemd 127.0.0.53 - как изменить постоянно?

Я недавно обновился до 17.10. Когда я пытаюсь перейти на веб-сайт или пропинговать домен, происходит сбой, говоря, что сайт не может быть разрешен.

network-admin показывает содержимое /etc/resolv.conf быть nameserver: 127.0.0.53

Если я изменю это на 8.8.8.8 или 208.67.222.222, то все работает. Пока я не перезагружаюсь.

После перезагрузки или возобновления, сервер имен сбрасывается до 127.0.0.53.

Как мне постоянно установить на сервере имен что-то, что работает?


Для поклонников systemd, если я бегу systemd-resolve --status я получил

Link 3 (wlo1)
      Current Scopes: LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

Если я последую совету в этом вопросе - DNS перезагрузится после перезагрузки. Ubuntu 17.10 - DNS по-прежнему не удается разрешить.

7 ответов

Решение

Вы можете установить пакет resolvconf, который изменит способ /etc/resolv.conf создается при загрузке системы.

sudo apt install resolvconf

Затем вы можете создать или изменить файл /etc/resolvconf/resolv.conf.d/tail, Если вы поместите в этот файл строку nameserver 8.8.8.8эта строка будет добавлена ​​в конце /run/resolvconf/resolv.conf при загрузке. /etc/resolv.conf теперь будет символическая ссылка на этот файл.

Правильным решением было бы исправить системное разрешение вместо того, чтобы пытаться вылечить мигрень с помощью гильотины.

Это действительно хороший инструмент, если его правильно использовать.

Судя по вашему systemd-resolve --status выход...

Link 3 (wlo1)
      Current Scopes: LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

... ваш менеджер сети не передает конфигурацию DNS для каждого интерфейса в systemd-resolved.

Например, последние версии NetworkManager будут делать это автоматически, если /etc/resolv.conf это символическая ссылка, указывающая внутри /run/systemd/resolve или /usr/lib/systemd/resolv.conf, Альтернативно, последние версии systemd-resolved пытаются быть совместимыми с историческим интерфейсом resolvconf, устанавливая resolvconf двоичный файл, который общается с systemd-resolved.

Хотя использование любого из этих двух решений будет предпочтительным, если вы ищете быстрое и грязное решение, вы можете просто настроить systemd-resolved для глобального использования ваших DNS-серверов:

$ cat /etc/systemd/resolved.conf
<...>
[Resolve]
DNS=8.8.8.8 8.8.4.4
<...>

Затем перезагрузите systemd-resolved.service или перезагрузка.

работая в systemd парадигма добавить DNS на ссылку / устройство

используя Ubuntu 17.10+ добавить *.network файл:

sudo nano /lib/systemd/network/100-somecustom.network:

100-somecustom.network (100 может быть любым числом для приоритета, и для этого требуется .network расширение файла):

[Match]
Name=wlo1 # the device name here

[Network] # add multiple DNS 
DNS=8.8.8.8
DNS=208.67.222.222

Затем перезапустите:

sudo service systemd-networkd restart

Также посмотрите на:

netplan apply

Затем проверьте:

systemd-resolve --status wlo1

Со страницы информации info systemd.network:

В дополнение к /etc/systemd/networkВстраиваемые каталоги ".d" могут быть размещены в каталогах / lib / systemd / network или / run / systemd / network. Добавленные в / etc файлы имеют приоритет над файлами в / run, которые, в свою очередь, имеют приоритет над файлами в / lib. Вставные файлы в любом из этих каталогов имеют приоритет над основным файлом netdev, где бы он ни находился. (Конечно, поскольку / run является временным, а / usr / lib для поставщиков, маловероятно, чтобы в любом из этих мест использовались вставки.)

Другой подход отключить DNSStubListener для использования с dnsmasq :

sudo nano /etc/systemd/resolved.conf:

#
DNSStubListener=false

связанные с:

Я использую Lubuntu & Kubuntu 18.04. Мне удалось преодолеть проблему DNS в 2 этапа:

Первый шаг: установка unbound и установить его на замену systemd-resolved как показывает Grégoire C.

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
sudo systemctl enable unbound-resolvconf
sudo systemctl enable unbound

перезагружать

Откройте как root файл /etc/NetworkManager/NetworkManager.conf

(sudo leafpad /etc/NetworkManager/NetworkManager.conf в Lubuntu 18.04 или в Kubuntu 18.04 SUDO_EDITOR=kate sudoedit /etc/NetworkManager/NetworkManager.conf)

и ниже [main] поставить эту строку:

dns=unbound

перезагрузить снова

Второй шаг: если после перезагрузки проблема все еще не решена, как это было в моем случае, запустите файловый менеджер от имени пользователя root, перейдите к /etc, удалять resolv.conf и создать новый resolv.conf, Оставьте это пустым и перезагрузите ОС. В моем случае после этой перезагрузки проблема исчезла.

В Kubuntu 18.04 вы не можете запустить Dolphin от имени пользователя root, поэтому вы можете сначала перейти к /etc и откройте терминал оттуда, затем введите sudo su и нажмите Enter, чтобы использовать его как root, а затем удалите resolv.conf с командой rm resolv.conf, Затем вы можете создать новый пустой файл на рабочем столе, назовите его resolv.conf и откройте терминал оттуда. Использовать sudo su Команда для входа в корневой режим для терминала, а затем скопировать новый resolv.conf с вашего рабочего стола на /etc с командой cp resolv.conf /etc,

Я должен добавить, что я не пытался сделать второй шаг перед установкой unbound так что в следующий раз я сделаю это, просто чтобы посмотреть, будет ли этого достаточно или нет.

Я использую Ubuntu 18.04 LTS. Я не знаю, как моя ОС внезапно столкнулась с этой проблемой, в то время как мой DNS работал хорошо в течение нескольких месяцев. Вот мое решение:

Установите resolvconf

$ sudo apt install resolvconf

Найдите источник /etc/resolv.conf.

$ ls -al /etc/resolv.confпоказывает, что /etc/resolv.conf символическая ссылка /run/resolvconf/resolv.conf

И я обнаружил, что: Этот файл /run/resolvconf/resolv.conf состоит из:

/etc/resolvconf/resolv.conf.d/head
/run/resolvconf/interface/systemd-resolved
/etc/resolvconf/resolv.conf.d/tail

$ cat /run/resolvconf/interface/systemd-resolved показывает nameserver 127.0.0.53, который будет сброшен после перезагрузки.

Добавить DNS

Кажется, что nameserver <my DNS> должен быть перед nameserver 127.0.0.53 чтобы это могло работать.

Я добавляю nameserver <my DNS> в конце /etc/resolvconf/resolv.conf.d/head.

Обновить resolvconf

$ sudo resolvconf -u

Вот как я изменяю свою запись DNS в конфигурации интерфейса.

$ vi /etc/netplan/50-cloud-init.yaml

Измените адреса серверов имен, ранее это было.4, затем я изменил его на.3:

...
            nameservers:
                addresses:
                - 192.168.1.3
...

Сохраните конфигурацию и затем примените конфигурацию:

$ sudo netplan apply

После этого перезапустите сервис resolctl.

$ sudo systemctl restart systemd-resolved.service

Для заметок: я перезагрузил сервер и внесенные изменения остались нетронутыми. я использую resolvctl dns Команда для проверки записи DNS.

Были некоторые проблемы с NordVPN, поэтому решил добавить к этому.

Результаты:
Наборы NordVPN /run/systemd/resolve/resolv.conf Настройки DNS при подключении.
NordVPN удаляет все настройки DNS из /run/systemd/resolve/resolv.conf при отключении.
Это приводит к тому, что DNS-сервер больше не работает (так как нет одного набора).

Система нуждается в перезагрузке, чтобы восстановить ее вообще. Стандартный перезапуск сервиса (sudo systemctl restart systemd-resolved.service) не работает.

Решение обойти это:

sudo apt install resolvconf

Перейдите на /etc/resolvconf/resolv.conf.d/

cd /etc/resolvconf/resolv.conf.d/
sudo nano tail

Добавить серверы имен

nameserver 1.1.1.1
nameserver 1.0.0.1

Проверьте следующие места для серверов имен, которые могли быть установлены:

/run/resolvconf/interface/original.resolvconf
/run/resolvconf/interface/systemd-resolved
/etc/resolvconf/resolv.conf.d/tail
/etc/resolvconf/resolv.conf.d/head
/etc/systemd/resolved.conf
/run/systemd/resolve/resolv.conf
/run/systemd/resolve/stub-resolv.conf

Проверьте, какие DNS-серверы используются с:

nslookup google.com

Server:         1.1.1.1
Address:        1.1.1.1#53

Может быть, немного поздно, но я столкнулся с этой проблемой. Я должен признать, что я вручную настраивал свои сетевые параметры через cli, а не через встроенный сетевой менеджер. Я запускаю Ubuntu 18.04.

Поэтому после того, как я отключил, а затем снова включил systemd.resolved.service, это ошибочное поведение случайной потери моей конфигурации DNS было решено для меня.

systemctl disable systemd.resolved.service
reboot

после перезагрузки:

systemctl enable systemd.resolved.service
reboot

Я относительно молодой пользователь Linux, поэтому должен быть кто-то, кто может объяснить, как и почему, почему это сработало бы для меня, но, казалось, стоит упомянуть, может ли это помочь другим.

Если вы хотите управлять файлом /etc/resolv.conf вручную, "man NetworkManager.conf" предоставляет ответ.

В /etc/NetworkManager/NetworkManager.conf в разделе [main] добавьте: dns= none

также убедитесь, что /etc/resolv.conf - это файл, а не символическая ссылка. Ваши изменения сохранятся после перезагрузки системы.

К сожалению, большинство ответов неверны или являются ненужными обходными путями.

Я думаю, ты просто упустил что-то очень серьезное.

установите nmap, а затем запустите nmap 127.0.0.1, затем 127.0.0.53. У них другой список сервисов, что-то определенно слушает и прячется в другом ip, пытаясь выглядеть как localhost. Затем компьютер указывает на этот адрес, а не на фактический DNS-сервер... и разрешает... но я не устанавливал какой-либо DNS-сервер...

Я изучаю, что это... подсеть localhost должна иметь только 127.0.0.1, если я правильно помню.

Это похоже на возможный взлом для обхода брандмауэров. Мой брандмауэр был включен и отклонял входящие и исходящие, но мой исходящий должен был быть на один IP. Мой реальный днс для работы...

При использовании разрешения имен dhcp работает как положено в Ubuntu. Проблемы начинаются, когда вы хотите стать статичным. cat /etc/resolv.conf покажет, что ваш dns это 127.0.0.53, а не те, которые у вас есть в /etc/netplan/.yaml файл. Чтобы это исправить, вам нужно удалить /etc/resolve.conf ссылку и создать новый, указывающий на /run/resolve/resolve.conf

Это потребовало немного поиграться с. После того как я обновил настройки, я перезагрузился. Использование:

ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

/etc/systemd/resolved.conf
DNS=8.8.8.8
Cache=no

System resolved failed
systemctl stop systemd-resolved
systemctl disable systemd-resolved

Когда закомментируйте "запрос" для

# domain-name, domain-name-servers, domain-search, host-name,

Добавьте эту строку в свой /etc/dhcp/dhclient.conf:

 supersede domain-name "cwillenterprise.com";

Отредактируйте файл конфигурации и добавьте запись. Дополнительный не заменит.

Добавить записи в /etc/resolvconf/resolv.conf.d/tail

nameserver 8.8.8.8
search "cwillenterprise.com"

Запустите для внесения изменений

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