Создание команды «host -v hostname» для CentOS 7

У меня есть новая установка CentOS 7. Во время установки я предоставил centa.home.local как имя хоста.

Теперь одному из программных продуктов необходимо увидеть вывод «host -v centa» для поиска IP-адреса сервера на сервере. К сожалению, он не может найти IP-адрес.

[user1@centa ~]$ ifconfig | grep inet inet 192.168.101.128 netmask 255.255.255.0 broadcast 192.168.101.255 inet6 fe80::20c:29ff:fe00:f049 prefixlen 64 scopeid 0x20<link> inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> [user1@centa ~]$ hostname centa.home.local [user1@centa ~]$ hostname -d home.local [user1@centa ~]$ hostnamectl status Static hostname: centa.home.local Icon name: computer-vm Chassis: vm Machine ID: b2d53d8cc49e486f980d0f8461c415e2 Boot ID: e2dbffd536434cc4ba530a17e8b186d6 Virtualization: vmware Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-514.el7.x86_64 Architecture: x86-64 [user1@centa ~]$ cat /etc/hosts 127.0.0.1 localhost localhost.localdomain ::1 localhost localhost.localdomain 192.168.101.128 centa.home.local centa [user1@centa ~]$ cat /etc/resolv.conf # Generated by NetworkManager search localdomain home.local nameserver 192.168.101.2 [user1@centa ~]$ host -v centa Trying "centa.localdomain" Trying "centa.home.local" Trying "centa" Host centa not found: 3(NXDOMAIN) Received 98 bytes from 192.168.101.2#53 in 136 ms [user1@centa ~]$ 

  • Разрешение DNS через HTTP / HTTPS
  • Bind9 не перенаправляет DNS
  • Debian не может разрешать имена хостов
  • Как работает разрешение имен DNS в принципе?
  • Как я могу быть уверен, что доступ к моему домашнему серверу из моей домашней сети не осуществляется через Интернет?
  • Домены DNS в белом списке
  • Маршрутизация портов / DNS для отдельной программы
  • каков поток запросов, когда resolv.conf сервера имен содержит только 127.0.0.1?
  • One Solution collect form web for “Создание команды «host -v hostname» для CentOS 7”

    Поскольку host утилита выполняет поиск DNS, она не использует /etc/hosts . Для достижения успеха хост должен быть где-то на DNS-сервере.
    Поскольку вопрос здесь, я предполагаю, что добавление этой записи DNS на ваш DNS-сервер (тот, который находится по адресу 192.168.101.2) не является вариантом. К счастью, вы можете решить эту проблему довольно легко, так как вы используете NetworkManager (как указано в строке комментариев в вашем /etc/resolv.conf ).

    Решение состоит в том, чтобы включить & настроить dnsmasq. dnsmasq – это DNS-переадресатор, который работает на локальном хосте. Он может выполнять простые задачи, такие как рекурсивный поиск и кеширование результатов. Он также может делать такие вещи, как запись записей из /etc/hosts . NetworkManager имеет встроенные функции для управления dnsmasq. Поэтому использовать его очень просто.

    конфигурация

    Компонент конфигурации должен сообщить dnsmasq, чтобы он обслуживал записи из /etc/hosts , поскольку конфигурация, используемая по умолчанию для NetworkManager для dnsmasq, не включает эту функцию.

    Создайте файл /etc/NetworkManager/dnsmasq.d/hosts.conf со следующим содержимым:

     addn-hosts=/etc/hosts 

    Включение

    Включение выполняется путем добавления параметра dns = dnsmasq в [main] раздел /etc/NetworkManager/NetworkManager.conf . Например:

     [main] dns = dnsmasq 

    После этого перезапустите NetworkManager (через systemctl restart NetworkManager.service ).

    Применение

    Теперь вы должны заметить, что /etc/resolv.conf имеет только одну запись nameserver указывающую на 127.0.0.1 . Любые инструменты, которые советуют /etc/resolv.conf чтобы найти серверы имен, теперь должны в конечном итоге поразить dnsmasq и получать записи, найденные в /etc/hosts . Если запись не существует в /etc/hosts , поиск будет перенаправлен на ваш восходящий DNS-сервер (192.168.101.2).

    Linux и Unix - лучшая ОС в мире.