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
связанные с:
- https://superuser.com/questions/1153203/ubuntu-17-04-systemd-resolved-dns-lookups-randomly-fail
- DNS в systemd 127.0.0.53 игнорирует некоторые поиски
- https://unix.stackexchange.com/questions/304050/how-to-avoid-conflicts-between-dnsmasq-and-systemd-resolved
- https://moss.sh/name-resolution-issue-systemd-resolved/
Я использую 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