Я использую локальный сервер с 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, без использования этой утилиты на основе графического интерфейса. Так что мне интересно, почему они усложнили этот для пользователей - это похоже на неправильный путь!
Хорошо, у вас есть несколько вопросов, объединенных в один:
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, что вызовет ошибку. У вас есть два варианта:
listen_addresses
в / etc / stubby / stubby. yml
, а затем скажите netplan.io использовать переопределение DNS, чтобы указать ему на этот новый IP / порт. Я согласен с @ 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 секунд до того, как конфигурация будет восстановлена, и вы сможете подключиться снова.