1

Хорошо, это будет довольно длинный вопрос. Во-первых, немного предыстории: я занимаюсь разработкой и тестированием сайтов на Macbook (OSX Lion), использую Parallels для запуска различных установок Windows для тестирования IE. Мне нужен был способ инициализации нового веб-проекта через файл BASH, автоматическая настройка виртуального хоста для проекта и еще много чего. Мне нужно было, чтобы мои виртуальные машины распознавали виртуальный хост, хотя мне не нужно было вручную редактировать файл хостов Windows виртуальной машины, но для этого мне понадобился мой скрипт BASH в OSX, чтобы иметь возможность редактировать файл хостов в Windows VM.

Я все еще не уверен, что это возможно, но, пытаясь понять это, я наткнулся на сообщение в блоге. В этом блоге рассказывалось о BIND и использовании именованных зон и всего, что нужно для настройки DNS-сервера, чтобы виртуальные хосты распознавались виртуальными машинами. У него была форма, которая запрашивала мой IP-адрес или что-то в этом роде, и выводил скрипт, который я использовал, чтобы все настроить, и он работал отлично! Проблема, однако, в том, что по какой-то идиотской причине я не добавлял в закладки этот пост в блоге. Вдобавок ко всему, когда я обновился до Parallels 8, он что-то сломал и все перестало работать. Я искал и искал сообщение в блоге и не могу найти его снова.

Что я знал о том, что делал скрипт, тем не менее, он определенно использовал IP-адрес адаптера Parallels Shared # 0 (192.168.2.2) в файле зоны. Не уверен, почему это работало до того, как я обновился до Parallels 8, но после обновления мои виртуальные хосты будут работать (даже на моей локальной машине), пока у меня работает Parallels. Он также создал папку в /etc / под названием resolver с файлом для моего виртуального хоста. Я понятия не имею, почему это работало тогда без запуска параллелей.

В любом случае, с тех пор, как я отказался от попыток найти этот пост в блоге, я сам начал пытаться разобраться в этом.

База виртуальных хостов, которую я хочу использовать, - это stupid.local .. поэтому, если у меня есть сайт с именем "test", он будет доступен по адресу http://test.stupid.local. Основной виртуальный хост настроен в моем файле apache httpd.conf правильно, и мой BASH-скрипт генерирует для меня файлы виртуального хоста отдельного сайта (что, я знаю, для фактической работы). До сих пор я установил bind/named через терминал и добавил это в мой файл /etc/named.conf:

 zone "local" IN {
        type master;
        file "local.zone";
        allow-update { none; };
    };

Мой файл /var/named/local.zone выглядит так:

$TTL  60
$ORIGIN local.
@      1D IN SOA  localhost. root.localhost. (
          46    ; serial (d. adams)
          3H    ; refresh
          15M    ; retry
          1W    ; expiry
          1D )    ; minimum

      1D IN NS  localhost.
      1D IN A  127.0.0.1

*.local. 60 IN A 192.168.1.138
stupid.local. 60 IN A 192.168.1.138
*.stupid.local. 60 IN A 192.168.1.138

... 192.168.1.138 - мой IP на работе. Как вы можете догадаться, эта установка работает и доступна моей виртуальной машине Windows через IE, но только когда я в сети на работе. Когда я беру свой Macbook домой, мне нужно сменить этот IP-адрес на тот, который есть в моей домашней сети, то есть 192.168.1.4. Кроме того, если я изменю этот IP-адрес на 192.168.2.2 (IP-адрес адаптера Parallels Shared # 0), он будет работать и доступен для моей виртуальной машины Windows через IE, но, конечно, только во время работы Parallels. Изменение его на 127.0.0.1 заставляет настройку работать только в OSX, а не через мою виртуальную машину.

Так что мне нужно создать или получить доступ к какому-либо IP-адресу, который останется с моим Macbook и не изменится, который я могу использовать с BIND, чтобы иметь доступ к моим виртуальным хостам в * .stupid.local на обоих моя локальная машина OSX и в моей виртуальной машине Parallels.

Я знаю, долго, но я хотел быть тщательным. Итак ... есть идеи? Или какие-нибудь альтернативные решения?

0