Как правильно использовать конкретный DNS-серверы, если используется DHCP в установке Ubuntu 20.04 без рабочего стола, и можно ли использовать DNS через TLS?

Я использую локальный сервер с Ubuntu 20.04, и мне нужно было сделать одну вещь, которая должна быть простой - сказать ему, чтобы он разрешал DNS, используя что-то другое, а не DNS-сервер ISP. Однако по причинам, которые я не буду вдаваться в подробности, необходимо получить IP-адрес с помощью DHCP, поэтому статического IP-адреса нет. Это было легко реализовать в предыдущих версиях Ubuntu, и, по-видимому, все еще не так сложно, если вы используете настольный компьютер, но я еще не видел хороших четких инструкций о том, как это сделать в Ubuntu Server.

Что я пробовал и то, что, похоже, работает на данный момент, это следующее:

sudo apt update
sudo apt install resolvconf
sudo nano /etc/resolv.conf

(Прямо под закомментированными строками я добавил две строки сервера имен, указывающие на Предпочитаемый DNS, например

nameserver 8.8.8.8
nameserver 8.8.4.4

, затем сохранен и вышел из nano)

sudo systemctl start resolvconf.service

Теперь это выглядит как работают, но меня беспокоит этот текст, который появляется в 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
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

Несмотря на это, я вижу, что многие люди советуют вам все равно отредактировать этот файл, но мне интересно, будет ли этот файл быть перезаписанным в какой-то момент, и если это так, то то, что сейчас считается "правильным" способом указания серверов имен в Ubuntu 20.04, имея в виду, что я не могу использовать статический IP-адрес и что у меня нет рабочего стола в системе? Вы могли подумать, что к настоящему времени кто-то уже рассказал об этом на веб-странице или в видео, но если так, я не могу его найти.

РЕДАКТИРОВАТЬ:Я понимаю, что «правильный» способ должен включать изменение файла /etc/netplan/00-installer-config.yaml для использования определенных серверов имен, но проблема в том, что если вы не установите dhcp4: на false или нет , он добавляет указанные вами DNS-серверы в список, который уже включает серверы, полученные от DHCP . Поэтому, если в запросе DHCP указано использование сервера имен провайдера, он всегда будет сначала проверять это и будет обращаться к вашим предпочтительным серверам имен только в том случае, если этот DNS не отвечает. Очевидно, это нежелательное поведение, и именно это побудило меня в первую очередь установить resolvconf.

Но, продолжая эту тему, я бы действительно хотел реализовать, если это не так уж сложно, так это DNS шифрование, которое, я думаю, называется DNS over TLS. Я хочу знать, встроена ли эта возможность в Ubuntu Server, и если да, то как вы ее включаете. Я видел несколько страниц, на которых предлагается установить пакет под названием stubby, но, опять же, почти все инструкции, которые я нахожу, написаны для пользователей более ранних версий Ubuntu или для пользователей настольных компьютеров Ubuntu.

Все это похоже на то, что это было бы много. проще в Ubuntu 18.04, но на всех страницах, которые я посетил, пытаясь получить надежную информацию по этому вопросу, если 20.04 упоминается вообще, во всех инструкциях почти всегда предлагается использовать инструмент настройки сети в настольной версии. Как будто никто не знает, как правильно сделать что-то, что должно быть действительно простым в Ubuntu 20.04, без использования этой утилиты на основе графического интерфейса. Так что мне интересно, почему они усложнили этот для пользователей - это похоже на неправильный путь!

1
задан 3 September 2020 в 00:30

2 ответа

Хорошо, у вас есть несколько вопросов, объединенных в один:

DNS-over-TLS (DoT)

Ubuntu предоставляет пакет stubby , который является одним из де-факто стандартные демоны DoT. Просто запустите apt install stubby , и все будет в порядке.

Переопределения DHCP DNS

Как chili555 указал в комментариях, вы хотите использовать dhcp4-overrides -> use Параметр -dns для отключения использования DNS-серверов, предоставляемых DHCP.

Использование Stubby

Как вы уже заметили, systemd-networkd по умолчанию запускает собственный DNS-преобразователь (systemd-resolved). Если вы хотите запустить Stubby, они оба захотят привязаться к порту 53, что вызовет ошибку. У вас есть два варианта:

  • Отключить systemd-resolved и настроить netplan.io на использование 127.0.0.1 в качестве сервера переопределения DNS. У этого есть обратная сторона - отключение кеширования DNS (я думаю).
  • Скажите Stubby привязать к другому локальному IP-адресу и / или порту, используя переменную listen_addresses в / etc / stubby / stubby. yml , а затем скажите netplan.io использовать переопределение DNS, чтобы указать ему на этот новый IP / порт.
1
ответ дан 4 January 2021 в 08:23

Я согласен с @ chili555, netplan - ваш лучший выбор. Не устанавливайте ненужные новые пакеты и не исправляйте свою систему с помощью альтернативной конфигурации. Netplan хорош, но я должен признать, что интервал раздражает :)

В Ubuntu 20.04 у вас уже должен быть пакет Netplan версии 0.99, который работает с dhcp4-overrides:

Итак, из ранее упомянутого post :

network:
  version: 2
  renderer: networkd
  ethernets:
    enp2s1:
      dhcp4: yes
      dhcp4-overrides:
        use-dns: false
      dhcp6: yes
      dhcp6-overrides:
        use-dns: false
      nameservers:
        addresses: ["fd35:2ff0:b0b9:d0c0::1:1", 192.168.255.17]

, а затем не бросайтесь на

netplan apply

, а используйте вместо него

netplan try

. Таким образом, у вас будет 120 секунд до того, как конфигурация будет восстановлена, и вы сможете подключиться снова.

1
ответ дан 4 January 2021 в 08:23

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

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