У меня есть Mac, на котором я занимаюсь веб-разработкой. Мои проекты настроены так, чтобы они были доступны по адресам, таким как project1.dev, project2.dev и т.д. Я устал от обновления файла "/etc/hosts", поэтому установил Dnsmasq. Работает отлично! Теперь я могу запустить ping doesnotexist.dev и получить ответы от 127.0.0.1, что я и хочу.

На Mac также установлена виртуальная машина Windows XP VirtualBox. Я хотел бы, чтобы эта виртуальная машина также имела возможность пинговать didnotexist.dev и получать ответы, но я хочу, чтобы ответы приходили с локального IP-адреса Mac вместо 127.0.0.1. Насколько я понимаю, это возможно с Dual DHCP DNS Server. Я установил его на виртуальной машине и отредактировал файл «DualServer.ini». Я просто раскомментировал строку "DNS" раздела «[SERVICES]» и добавил *.dev=192.168.1.50 в раздел «[SERVICES]». Это не сработало, хотя. Я увидел эту ветку и решил установить Microsoft Loopback Adapter, но я не знал, как его настроить. Так что теперь я застрял.

Как настроить DNS-сервер с двумя DHCP-серверами таким образом, чтобы pinging doesnotexist.dev получал ответы от IP-адреса локальной сети Mac?

3 ответа3

2

Обзор моего решения

Я закончил тем, что использовал pDNS, как предложено gnp. Это все содержимое файла hosts.txt, который я использовал:

192.168.1.50 *.dev

Мне не понравилось, что мне нужно было всегда открывать командное окно, поэтому я установил бесплатную версию 4t Tray Minimizer, сохраняя горячую клавишу по умолчанию Shift+Esc, чтобы минимизировать активное приложение в трее. Я хотел автоматизировать часть Shift+Esc, поэтому я написал скрипт AutoIt, который запускает pDNS и сразу минимизирует его в трей. Сценарий запускается при запуске Windows.

Конкретные шаги

  1. Загрузите и распакуйте pDNS. Я решил поместить извлеченные файлы в «C:\Applications\pDNS».
  2. Отредактируйте файл hosts.txt в pDNS, чтобы он выглядел так, как в обзоре моего решения.
  3. Загрузите и установите бесплатную версию 4t Tray Minimizer. Обязательно установите флажок «Запускать мини-лоток 4t при запуске Windows». Также не забудьте оставить флажок "Свернуть в трей" и установить горячую клавишу «Shift +Esc». Если вы хотите изменить горячую клавишу, вам также придется изменить скрипт AutoIt.
  4. Скачайте и установите AutoIt. Когда вас попросят выбрать параметр по умолчанию для файлов * .au3, убедитесь, что выбран переключатель "Запустить сценарий".
  5. Установите предпочитаемый DNS-сервер на 127.0.0.1.
  6. Создайте следующий скрипт AutoIt (я назвал мой «pDNS.au3») и поместите его в папку "Автозагрузка" («% APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup»). Не стесняйтесь заменить IP OpenDNS чем-то другим.

Run("C:\Applications\pDNS\pdns.exe /ns:208.67.222.222", "C:\Applications\pDNS")
WinWaitActive("C:\Applications\pDNS\pdns.exe")
Send("+{ESC}")
0

Вы должны использовать параметр dnsmasq -A. Из документации dnsmasq:

   -A, --address=/<domain>/[domain/]<ipaddr>
          Specify  an IP address to return for any host in the given domains.  Queries in the
          domains are never forwarded and always replied to with  the  specified  IP  address
          which  may  be IPv4 or IPv6. To give both IPv4 and IPv6 addresses for a domain, use
          repeated -A flags.  Note that /etc/hosts and DHCP leases override this for individ-
          ual names. A common use of this is to redirect the entire doubleclick.net domain to
          some friendly local web server to avoid banner ads. The domain specification  works
          in  the same was as for --server, with the additional facility that /#/ matches any
          domain. Thus --address=/#/1.2.3.4 will always return  1.2.3.4  for  any  query  not
          answered  from  /etc/hosts or DHCP and not sent to an upstream nameserver by a more
          specific --server directive.

Поэтому либо добавление --address=/dev/192.168.1.50 в командную строку dnsmasq, либо добавление address=/dev/192.168.1.50 в файл конфигурации dnsmasq и перезапуск должны помочь.

Кроме того, если вы не можете подключить виртуальную машину Windows к dnsmasq на компьютере Mac для запросов DNS, вы можете попытаться повторить то же поведение на pDNS с использованием символов подстановки ...

0

Если вы используете DNS-сервер, просто подключите виртуальный сетевой адаптер к Virtualbox (по умолчанию он настроен на NAT, что противоположно тому, что вам нужно) и настройте внутренний DNS виртуальной машины так, чтобы он указывал на ваш сервер.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .