У меня есть 2 машины в одной подсети с Debian 5.0. Они используют один и тот же DNS (/etc/resolv.conf), они маршрутизируют на один и тот же шлюз (#route) и имеют одинаковые настройки iptables (#iptables -L). Я могу пропинговать их обоих, как по IP-адресам, так и по именам хостов Я могу запустить #host www.google.com и получить одинаковые результаты для них обоих. Но проблема в том, что на одном из них я не могу увидеть или свернуться.
Таким образом, на машине 1 все в порядке, но на машине 2 (с теми же настройками, что и на машине 1) я не могу wget или curl.
Я получаю ошибку:
# wget google.com
--2009-10-20 16:38:36-- http://google.com/
Resolving google.com... failed: Name or service not known.
wget: unable to resolve host address `google.com'
Но на машине 1 нет проблем wget или curl и возвращает:
# wget google.com
--2009-10-20 16:43:55-- http://google.com/
Resolving google.com... 74.125.53.100, 74.125.45.100, 74.125.67.100
Connecting to google.com|74.125.53.100|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
...
Saving to: `index.html.3'
И т.п.
Я надеюсь, что кто-то здесь может указать мне правильное направление, чтобы я мог решить эту проблему :)
Ответы:
Проверьте свой
/etc/nsswitch.conf
файл (или любой другой эквивалент в Debian, если это не так).host
иnslookup
всегда делаю поиск DNS.Однако другие приложения сначала будут искать в NSS другие системы именования (например
/etc/hosts
, NIS и т. Д.). Если что-то настроено, но не работает, это может помешать приложению когда-либо пытаться использовать DNS.источник
getent hosts google.com
. Это использует nsswitch.conf и затем resolv.conf как требуется.Спасибо за ответы, ребята!
Это был файл nsswitch.conf. Я настроил LDAP из учебника, который сказал мне использовать эту строку в хостах:
Когда я изменил это на это:
Работает без проблем. Итак, я предполагаю, что файл конфигурации nsswitch заставлял его возвращать ноль, если он не найден в файлах, или mdns4_minimal, верно?
Спасибо за вашу помощь!
источник
Может ли быть неверный прокси, настроенный на машине с ошибкой? Попробуй это:
источник
Первое, что нужно попробовать, это проверить, правильно ли работает DNS.
Если вы не получили этот ответ, проверьте /etc/resolv.conf и найдите серверы имен, перечисленные в этом файле. Можете ли вы пинговать каждого из них?
Попробуйте запросить каждого из них в отдельности:
Можете ли вы разрешить другой хост?
источник
У меня была такая же проблема, но рядом с изменением
/etc/nsswitch.conf
:Я также должен был изменить серверы имен:
Изменить
/etc/resolv.conf
так, чтобы он указывал на серверы имен Google. Те, что были добавлены сетевым менеджером, не работают для меня.источник