Почему `host` и` nslookup` в Solaris 10 разрешают имена хостов, в то время как `ping` и` telnet` нет?

  • Подавить новую строку, когда Awk'ing массив
  • bc ведет себя по-разному на Solaris и Linux
  • Код возврата всегда равен 0 после запуска echo "\ $ macroName" | ftp -i mymachine
  • Почему sendmail работает по-разному в разных оболочках?
  • Как устранить неисправность контроллера диска в системах на базе Illumos?
  • Почему вывод поиска отсортирован в Cygwin, но не в Solaris?
  • solaris awk проблемы с датой и заявлениями
  • Два разных IP-адреса для одного интерфейса NIC
  • 3 Solutions collect form web for “Почему `host` и` nslookup` в Solaris 10 разрешают имена хостов, в то время как `ping` и` telnet` нет?”

    Похоже, ping и telnet не смогли разрешить имена хостов, потому что они не запрашивали настроенный DNS-сервер ( host и nslookup похоже, используют другой код запроса DNS), решение:

    Перезаписать /etc/nsswitch.conf с /etc/nsswitch.dns :

     cp /etc/nsswitch.dns /etc/nsswitch.conf 

    Адам, вы не говорите нам, какую версию Solaris вы используете.

    Весь поиск хоста на Solaris проходит через демон службы службы именования Solaris. Единственным исключением является nslookup который выполняет прямой DNS-запрос к DNS-серверу. Демон службы именования в основном действует как кеш информации об именах. Другие операционные системы имеют аналогичные услуги. Служба именования Solaris настроена в файле /etc/nsswitch.conf .

    На самом деле, я действительно надеюсь, что вы находитесь в более старой версии, такой как Solaris 10 или раньше. В противном случае вы вручную отредактировали файл, который вам больше не требуется редактировать: файл /etc/nsswitch.conf .

    В любом случае, скажем, вы находитесь на Solaris 10 или старше: у вашего /etc/nsswitch.conf должна быть запись вроде этого:

     hosts: files dns 

    Это сообщает службе именования Solaris, что хосты должны сначала искать в локальном файле (например, /etc/hosts ), а затем в DNS. Конечно, вы можете также иметь только «dns», но люди обычно хотят этого, чтобы /etc/hosts могли переопределить то, что находится в DNS.

    Теперь вам может потребоваться перезапустить демон службы именования:

     svcadm restart /system/name-service-cache 

    Вы всегда можете проверить настройку службы именования с помощью команды Solaris getent :

     getent hosts google.com 

    Команда getent проверяет, работает ли Служба именования Solaris так, как вы ожидаете. Вы не можете использовать nslookup для проверки этого.

    Если вы находитесь на Solaris 11, вы можете использовать ответ nolan600 на этот вопрос . Команда getent также применяется к Solaris 11.

    Надеюсь, вы можете использовать часть этого.

     root @ solaris: ~ # svccfg -s имя-сервис / переключатель
     svc: / system / name-service / switch> setprop config / host = "files dns"
     svc: / system / name-service / switch> listprop config
     приложение конфигурации
     config / default astring files
     config / value_authorization astring solaris.smf.value.name-service.switch
     config / printer astring "файлы пользователя"
     config / host astring "files dns"
     svc: / system / name-service / switch> выход
     root @ solaris11: ~ # svcadm обновить имя-сервис / переключатель 
    
    Linux и Unix - лучшая ОС в мире.