Рейтинг:0

Как обновить/получить новые DNS-серверы на Ubuntu Server 20.04?

флаг id

Я работаю с «виртуальным частным сервером» в облаке, на котором установлена ​​Ubuntu 20.04.

Я заметил, что иногда, когда я перезагружаю сервер, я ничего не могу пропинговать:

$ пинг yahoo.com
ping: yahoo.com: временная ошибка в разрешении имен
$ разрешение запроса yahoo.com
yahoo.com: ошибка разрешения вызова: не найдены подходящие серверы имен или сети для имени

Насколько я понимаю, так как это Ubuntu 20.04, /etc/resolv.conf фактически больше не используется, и системад обгоняет обработку DNS.

Но, в любом случае, я бы не хотел вручную указывать DNS-серверы (поскольку старый трюк с размещением гугловской 8.8.8.8 в /etc/resolv.conf) - видимо, большую часть времени при работе DNS: сервер при загрузке каким-то образом "добывает" DNS-сервер. Итак, я хотел бы повторить этот процесс, но я понятия не имею, как это сделать.

(По аналогии, если бы я хотел обновить/получить новый IP-адрес для машины, я знаю, что машина должна запросить его у DHCP-сервера, так что, в конце концов, это легко найти, и для этого я стоит сделать sudo dhclient -r eth0 например)

Также обратите внимание, что когда разрешение имен DNS не работает, у меня нет DNS-серверы перечисленные в этом выводе:

$ systemd-разрешение --статус
Глобальный
       Настройка LLMNR: нет
Настройка MulticastDNS: нет
  Настройка DNSOverTLS: нет
      Настройка DNSSEC: нет
    Поддерживается DNSSEC: нет
          DNSSEC NTA: 10.in-addr.arpa
                      16.172.in-addr.arpa
                      168.192.in-addr.arpa
                      17.172.in-addr.arpa
                      18.172.in-addr.arpa
                      19.172.in-addr.arpa
                      20.172.in-addr.arpa
                      21.172.in-addr.arpa
                      22.172.in-addr.arpa
                      23.172.in-addr.arpa
                      24.172.in-addr.arpa
                      25.172.in-addr.arpa
                      26.172.in-addr.arpa
                      27.172.in-addr.arpa
                      28.172.in-addr.arpa
                      29.172.in-addr.arpa
                      30.172.in-addr.arpa
                      31.172.in-addr.arpa
                      корпорация
                      д.ф.ip6.arpa
                      дом
                      внутренний
                      интранет
                      лан
                      местный
                      частный
                      тестовое задание

Ссылка 2 (eth0)
      Текущие области применения: нет
Настройка DefaultRoute: нет
       Настройка LLMNR: да
Настройка MulticastDNS: нет
  Настройка DNSOverTLS: нет
      Настройка DNSSEC: нет
    Поддерживается DNSSEC: нет

Я видел, что для очистки кеша DNS они (https://unihost.com/help/how-to-clear-the-dns-cache/) рекомендовать:

sudo /etc/init.d/сетевой перезапуск

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

Итак, мне интересно: есть ли команда, которую я мог бы запустить в ssh сеанс, который будет обновлять или получать новые DNS-серверы для этой машины — с использованием аналогичного механизма, который используется при загрузке, когда DNS действительно работает на этой машине?

Рейтинг:1
флаг id

Ну, я только что нашел https://unix.stackexchange.com/questions/328131/how-to-troubleshoot-dns-with-systemd-resolved который отмечает:

... иногда перезапуск через sudo systemctl перезапустить systemd-resolved это хорошая идея.

Итак, я попробовал эту команду:

sudo systemctl перезапустить systemd-resolved

... и действительно, DNS-серверы появился тогда в выводе systemd-разрешение --статус (или же статус разрешения, который, похоже, показывает тот же отчет)

Другие возможности:

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

...

Этот файл содержит DNS-серверы из DHCP-аренды, но имейте в виду, что вы не получите преимущества от функции кэширования тупиковых распознавателей.

Ах, если DNS-сервера получены из аренды DHCP - тогда есть возможность sudo dhclient -r eth0 тоже может сработать.

Наконец я осмелился бежать:

$ sudo /etc/init.d/сетевой перезапуск
Перезапуск сети (через systemctl): networking.service.

... и оказывается, это не сломало мою ssh сессия, так что это тоже хорошо.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.