По-прежнему ли используется /etc/hosts для переопределения разрешения имен DNS в Fedora?

Вопрос или проблема

Я работаю на Fedora 31. Мне нужно переопределить разрешение DNS для одного домена. С помощью /etc/hosts я бы добавил:

172.16.2.1    example.com
172.16.2.1    www.example.com

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

Как мы можем переопределить разрешение DNS для одного имени на Fedora 31 с помощью Systemd?


Вот /etc/resolv.conf:

$ cat /etc/nsswitch.conf | grep -v '#' | sed -r '/^\s*$/d'
passwd:      sss files systemd
shadow:     files sss
group:       sss files systemd
hosts:      files dns myhostname
bootparams: files
ethers:     files
netmasks:   files
networks:   files
protocols:  files
rpc:        files
services:   files sss
netgroup:   sss
publickey:  files
automount:  files sss
aliases:    files

Да, изменение /etc/hosts — это правильный способ переопределить стандартный DNS.

Это не будет работать, если вы используете DNS через HTTPS (DOH).

Некоторые операционные системы и браузеры потребуют сброса их внутренних кэшей DNS для немедленных изменений в разрешении имен.

Ответ или решение

Да, файл /etc/hosts по-прежнему используется для переопределения разрешения DNS в Fedora, включая версию 31. В этом файле можно указать статическое сопоставление IP-адресов и доменных имен. В вашем случае, чтобы переопределить DNS-разрешение для домена example.com, вы можете добавить в /etc/hosts следующие строки:

172.16.2.1    example.com
172.16.2.1    www.example.com

Порядок поиска имен в Fedora

Как показывает ваш вывод из nsswitch.conf, система будет следовать данному порядку при разрешении имен хостов:

  1. files — сначала будет проверяться файл /etc/hosts.
  2. dns — далее система обратится к DNS-серверу.
  3. myhostname — в последнюю очередь будет рассмотрено имя самого хоста.

Это значит, что если вы добавите записи в /etc/hosts, они будут иметь преимущество перед запросами к DNS. Это полезно для разработки или тестирования, когда вы хотите, чтобы запросы к определённому домену указывали на локальный сервер или IP-адрес.

Влияние Systemd и других технологий

В последние годы в Linux, включая Fedora, активно внедряются технологии, такие как Systemd, который отвечает за управление множеством системных сервисов, включая системные службы сети. Однако это не мешает файлу /etc/hosts продолжать работать. На самом деле, эти зависимости между сетевыми серверами и именами хостов остаются одинаковыми.

Тем не менее, следует учитывать следующее:

  1. DNS-over-HTTPS (DOH): Если вы используете DOH в вашем браузере или системе, это может мешать работе файла /etc/hosts, поскольку браузер будет игнорировать локальное разрешение имен.

  2. Кэш DNS: Некоторые операционные системы и браузеры могут кешировать DNS-записи. Таким образом, чтобы изменения вступили в силу, может потребоваться очистить кэш. В большинстве случаев достаточно перезапустить сетевой сервис или, в крайнем случае, перезагрузить систему.

Проверка работы

После того как вы внесли изменения в файл /etc/hosts, вы можете проверить корректность работы с помощью команды ping или nslookup:

ping example.com

или

nslookup example.com

Если все сделано правильно, должно отображаться IP-адрес 172.16.2.1, который вы указали в файле /etc/hosts.

Заключение

Итак, да, вы можете использовать /etc/hosts для переопределения DNS-разрешения на Fedora 31. Это надежный и простой способ контролировать, как разрешаются домены, если вы не используете специфические решения, такие как DOH. Убедитесь, что вы следите за кэшем DNS и другими современными реализациями, которые могут повлиять на разрешение имен.

Оцените материал
Добавить комментарий

Капча загружается...