dnsmasq, читающий/etc/hosts, но не использующий его

@above

Вы - правильный сэр.. я получил еще немного, expalination.it похож как

Можно использовать функцию при использовании интерактивной оболочки (т.е., когда Вы работаете над CLI). Поэтому/etc/bashrc, это получено всеми интерактивными оболочками на запуске (если Ваш дистрибутив был настроен тот путь, конечно).

Но Вы не можете использовать ту же функцию на своих сценариях. И поэтому Ваши сценарии ничего не знают о Вашей функции./etc/bashrc это использовало только для интерактивных оболочек, не неинтерактивных оболочек (т.е., подоболочки, порожденные для выполнения сценария).

Необходимо получить/etc/bashrc вручную, или включать функциональный код сценариев или записать функциональный код другого сценария, который может после быть получен другими сценариями.

5
задан 24 June 2011 в 15:57
5 ответов

На что похож Ваш/etc/resolv.conf? Ищите доменные или поисковые элементы.

Установите .local домен для dnsmasq и затем добавьте, что к Вашему resolv.conf и он должен работать.

Попытка роет sun.local @localhost.

1
ответ дан 3 December 2019 в 01:33

Этот отрывок от dnsmaq FAQ кажется релевантным:

Q: Имена в Интернете хорошо работают, но ищут локальные имена от/etc/hosts, или DHCP, кажется, не работает.

A: Код сопоставителя когда-то делает странные вещи когда имена без любых точек в. Win2k и WinXP не могут использовать DNS вообще и просто попытаться искать имя с помощью WINS. На Unix смотрят "на опции ndots": в "человеке resolv.conf" для получения дополнительной информации об этой теме. Тестирование поисков с помощью "nslookup" или "роет", будет работать, но затем пытающийся выполнить "ping" получит отказ поиска, добавление точки в конец имени хоста починит вещи. (т.е. "проверяют с помощью ping-запросов myhost" сбои, но "проверяют с помощью ping-запросов myhost". работы. Решение состоит в том, чтобы удостовериться, что все Ваши хосты имеют доменный набор ("домен" в resolv.conf, или установите домен в своем сервере DHCP, посмотрите ниже франка Windows XP и Mac OS X). Любой домен сделает, но "localnet" является традиционным. Теперь при разрешении "myhost", сопоставитель попытается искать "myhost.localnet", таким образом, у Вас должен будет быть ответ dnsmasq на то имя. Способ сделать, который должен включать домен в каждое имя на/etc/hosts и/или использовать - расширять-хосты и - доменные опции.

Таким образом, я предлагаю, чтобы Вы отправили Ваш /etc/resolv.conf, а также аргументы, которые Вы подаете к dnsmasq при запуске его.

2
ответ дан 3 December 2019 в 01:33

выройте, а также хост, и nslookup конкретно создаются для запросов серверов DNS. Это не посмотрит на/etc/hosts и на самом деле проигнорирует/etc/nsswitch.conf

Что-либо с помощью вызова gethostbyname будет однако использовать/etc/nsswitch.conf

Например, ping должен использовать/etc/hosts, если файлы перед DNS в/etc/nsswitch.conf, который это обычно.

0
ответ дан 3 December 2019 в 01:33

Я знаю, что это с 2011 года, но так как он все еще не получил принятого ответа:

Сегодня у меня была аналогичная проблема. Curl работал, чтобы получить ожидаемый ответ от haproxy lxc с соответствующим заголовком, но почему-то мой локальный dnsmasq не предоставил разрешение для container.test (подтверждено с помощью nslookup).

Google нашел меня это сообщение Хьюго Хедена, который сказал, что это может быть проблема с форматированием / etc / hosts .

Что решило проблему для меня:

  1. Раскомментирование нет- хосты в /etc/dnsmasq.conf
  2. Помещение 123.123.123.12 container.test в новый файл, например /etc/dnsmasq.hosts
  3. Указал dnsmasq на новый файл, добавив addn-hosts = / etc / dnsmasq.hosts в /etc/dnsmasq.conf
3
ответ дан 3 December 2019 в 01:33

Кое-что, что я обнаружил: все настроено нормально, но DNS-имя из /etc/hosts не разрешается. После добавления/редактирования /etc/hosts (или любого файла конфигурации) не забудьте перезапустить процесс dnsmasq, чтобы перечитать файл. Dnsmasq импортирует эти файлы при запуске, это не поиск в реальном времени.

2
ответ дан 2 July 2021 в 09:42

Теги

Похожие вопросы