/ usr / bin / host не подбирает изменения в / etc / hosts даже после перезагрузки

У меня есть машина Ubuntu Server 12.04 ( amd64 ), на которой, когда я изменяю /etc/hosts , изменения не принимаются, даже после перезагрузки. Я использую /usr/bin/host для тестирования, но ни одна из других программ, похоже, не забирает его.

Это сервер, а nscd и dnsmasq не установлены. Кроме того, файл /etc/nsswitch.conf содержит строку:

 hosts: files dns 

так что я ожидаю, что это сработает. Я также проверил, что mtime файла изменяется с помощью редактирования и пытается запустить service networking restart (несмотря ни на что), а также resolvconf -u .

Все команды, где они выполняются с root . Машина настроена вручную в /etc/network/interfaces а не через Network Manager (она также не установлена).

В основном я хочу добиться того, что IP для нескольких хостов можно манипулировать. Причина в том, что внутри нашей сети я получаю IP-адрес, к которому у меня нет маршрута, но я могу использовать внешний IP для этой службы через HTTPS.

Что мне не хватает?

Примечание. DNS-сервер не работает локально, а строки /etc/resolv.conf в /etc/resolv.conf (и соответствующие строки в interfaces ) указывают на DNS-сервер, который дает мне неправильный IP-адрес.

Также обратите внимание: я искал в Интернете и читал «похожие вопросы», но мое дело, похоже, не охвачено.

/etc/host.conf :

 # The "order" line is only used by old versions of the C library. order hosts,bind multi on 

  • Ubuntu remaster создает слишком маленькие ISO
  • Могу ли я поместить 2 диска в массив raid-0 без изменения FS?
  • Где карта памяти моего планшета установлена ​​на ноутбуке?
  • Влияние компиляции из исходного кода на уже установленные приложения
  • / etc / fstab устанавливает rw файловую систему как доступную только для чтения
  • Как сделать мой диск отключенным в ожидании нечитаемых секторов
  • Приложение терминала удалено из Ubuntu 13
  • Общие библиотеки и различные системы Linux
  • 3 Solutions collect form web for “/ usr / bin / host не подбирает изменения в / etc / hosts даже после перезагрузки”

    Команда хоста не проверяет файл hosts. С manpage:

     host is a simple utility for performing DNS lookups. 

    Если вы хотите проверить поиск, соблюдая файл hosts, используйте ping или getent.

     $ tail -1 /etc/hosts 127.0.0.1 google.com $ ping -c1 google.com | head -1 PING google.com (127.0.0.1) 56(84) bytes of data. $ getent ahosts google.com 127.0.0.1 STREAM google.com 127.0.0.1 DGRAM 127.0.0.1 RAW 

    Утилита host используется для поиска DNS. Он не заботится о файлах хостов или не-DNS-методах решения имени хоста. Если вы хотите увидеть, как ваша система будет разрешать имя хоста при обычных обстоятельствах (принимая во внимание nsswitch.conf), вы можете использовать getent . Утилита host должна быть зарезервирована для тестирования DNS. Вот пример:

     $ host foobar.com foobar.com has address 69.89.31.56 foobar.com mail is handled by 0 foobar.com. $ getent hosts foobar.com 10.188.14.16 foobar.com 

    Такие программы, как dig , host и nslookup запрашивают только DNS . Они не запрашивают другие источники имен хостов, такие как /etc/hosts , NIS или LDAP.

    В большинстве настроек самый простой способ плавного добавления имен узлов локально – запустить DNS-сервер. Запуск кеша DNS – хорошая идея в любом случае для производительности. Другими словами, тот факт, что DNS-сервер не работает локально, – это что-то, что нужно исправить, а не что-то работать.

    Dnsmasq является общим выбором: он широко доступен, небольшой (он используется во многих Linux-маршрутизаторах) и легко настраивается. Dnsmasq кэширует DNS-запросы и может обслуживать дополнительные имена из файла hosts. Он также предоставляет базовый сервер DHCP, подходящий для небольших сетей, но вам не нужно использовать эту часть. Если у вас изолированная машина, запустите Dnsmasq. Если у вас есть локальная сеть, запустите Dnsmasq (или другое эквивалентное программное обеспечение, которое уже есть) на вашем маршрутизаторе. См. Раздел Как сделать машину доступной из локальной сети с использованием имени хоста для получения дополнительной информации, в том числе о том, как настроить Dnsmasq.

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