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

  • PHP 7.1.2 не может Gmake: Zend Error
  • Укажите только количество всех файлов / каталогов для дерева каталогов текущего каталога
  • Найти имя хоста или IP удаленного сеанса ssh в Solaris
  • проблема с тем, как недавно созданные пусковые установки гномов работают против пусковых установок, восстановленных после загрузки системы. (изменение названия для ясности)
  • Solaris: найдите день последнего понедельника, вторника, ... воскресенье с помощью сценария оболочки
  • Использовать всю системную память в Solaris
  • как отслеживать каталог unix, и если какой-либо новый файл в каталоге будет скопирован в другой каталог
  • Solaris 11 - (unix: Не удалось запустить init) Программа завершена)
  • 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 - лучшая ОС в мире.