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

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 обновить имя-сервис / переключатель 
  • Запустить раздел Solaris в Linux
  • Как исключить список полных путей каталога в команде find в Solaris
  • Как распечатать общий процент доступного пространства в конкретной файловой системе как в Linux, так и в Solaris?
  • solaris awk проблемы с датой и заявлениями
  • Solaris 11 и zfs, я не понимаю, какое пространство используется
  • Как я могу узнать IP-адрес других пользователей, зарегистрированных на одном удаленном компьютере?
  • Эмуляция Sun UltraSparc IIIi Solaris 5.10
  • Почему в выводе netstat не отображается мой IP-адрес клиента?
  • Ключ для завершения работы ОС Solaris
  • Обновить репозитории в Solaris 10
  • Как перечислить все запущенные X-приложения?
  • Interesting Posts

    Проблема с чтением текстового файла, закодированного в западной кодировке (ISO-8859-1)

    Почему раздел будет использоваться системой, если он не установлен?

    Shell: Как удалить все связанные пакеты с определенным? / Ubuntu

    -lpopt не найден во время перекрестного компиляции для aarch64

    Многочисленные настольные компьютеры Knoppix

    Как создать функцию для заполнения области до определенной ширины?

    Как преобразовать данные с разделителями табуляции в данные с разделителями-запятыми?

    Почему переадресация портов через захват libvirt с помощью внешнего NAT-трафика?

    Вычисление в функции приводит к ошибке

    Запуск программ на виртуальных рабочих столах

    Что вызывает `diff` для запуска` git diff`?

    modetest.c из тестов libdrm не содержит фреймов

    Получите два значения из вывода команды в сценарии bash

    Легкий метод командной строки для определения конкретной строки архитектуры ARM?

    Как настроить скрипт для запуска с правами неинтерактивно?

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