Вопрос или проблема
У меня есть виртуальная машина Vagrant, работающая на моем Mac с виртуальными хостами, которые я хочу сделать доступными для моей локальной сети. Я установил dnsmasq через brew и у меня есть следующее в файле /usr/local/etc/dnsmasq.conf:
address=/lv.lc/33.33.33.10
так что все URL, оканчивающиеся на *.lv.lc, будут разрешаться на 33.33.33.10.
Это частично работает: dig www.lv.lc
возвращает мне правильный ответ:
anton@anton-mbp:~$ dig www.lv.lc
; <<>> DiG 9.10.1 <<>> www.lv.lc
;; глобальные опции: +cmd
;; Получен ответ:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54075
;; флаги: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; СЕКЦИЯ ВОПРОСА:
;www.lv.lc. IN A
;; СЕКЦИЯ ОТВЕТА:
www.lv.lc. 0 IN A 33.33.33.10
но когда я пытаюсь пропинговать этот хост,
anton@anton-mbp:~$ ping www.lv.lc
ping: не удается разрешить www.lv.lc: Неизвестный хост
Я добавил локальный IP-адрес машины, на которой работает dnsmasq, в DNS-серверы моего маршрутизатора, но другие клиенты в этой сети не получают от него ответа, даже когда я явно выполняю nslookup:
DNS-запрос истек.
время ожидания составило 2 секунды.
Адрес: 192.168.1.38
Что я делаю не так?
Я глуп. dnsmasq не был настроен на прослушивание на 192.168.1.38, поэтому я добавил
listen-address=192.168.1.38
listen-address=127.0.0.1
в свой файл dnsmasq.conf, так что теперь это работает.
Ответ или решение
Чтобы решить проблему с таймаутом DNS-запросов для машин в локальной сети, вам необходимо убедиться, что dnsmasq настроен правильно и слушает на нужных адресах.
-
Настройка конфигурации dnsmasq:
В файле конфигурацииdnsmasq.conf
, который обычно находится по пути/usr/local/etc/dnsmasq.conf
, убедитесь, что вы добавили следующие строки:address=/lv.lc/33.33.33.10 listen-address=192.168.1.38 listen-address=127.0.0.1
Добавление
listen-address=192.168.1.38
позволяет dnsmasq прослушивать запросы на локальном IP-адресе вашей машины, что делает ваш DNS-сервер доступным для других устройств в вашей сети. -
Проверка подключения:
После внесения изменений в конфигурационный файл не забудьте перезапустить dnsmasq, чтобы изменения вступили в силу. Вы можете сделать это следующей командой:brew services restart dnsmasq
-
Настройка DNS-серверов на маршрутизаторе:
Убедитесь, что IP-адрес вашей машины, на которой работает dnsmasq (т.е. 192.168.1.38), настроен в качестве DNS-сервера на маршрутизаторе. Это позволит другим устройствам в вашей сети отправлять DNS-запросы на ваш dnsmasq. -
Проверка других клиентов в сети:
На других устройствах в вашей локальной сети выполните команду nslookup или dig для проверки возможности разрешения доменного имени:nslookup www.lv.lc
Если всё настроено правильно, вы должны получить ответ с IP-адресом 33.33.33.10.
-
Устранение проблем:
Если проблемы сохраняются:- Проверьте настройки брандмауэра на вашем Mac, возможно, он блокирует входящие DNS-запросы.
- Убедитесь, что другие устройства в локальной сети используют соответствующий DNS-сервер, либо настройте их вручную.
-
Проверка локального разрешения имен:
На вашей машине попробуйте выполнить командыdig
иping
, чтобы убедиться, что они могут разрешать адрес более успешно:dig www.lv.lc ping www.lv.lc
Ожидайте, что ping теперь будет работать без ошибок, так как DNS-запрос должен возвращать правильный IP-адрес.
Если все вышеперечисленные шаги выполнены, и вы всё еще сталкиваетесь с проблемами, проверьте журналы dnsmasq (обычно они находятся в /usr/local/var/log/dnsmasq.log
), чтобы выявить возможные ошибки или проблемы с разрешением.