Проброс портов хоста (Ubuntu) в гостя (Windows) в VirtualBox

Как и многие веб-разработчики, мы вынуждены тестировать наш веб-сервис в разнообразных броузерах и средах. И всё бы было хорошо, но, нам также приходится тестировать его в Internet Explorer 6, что доставляет нам много принеприятнейших минут. Не буду говорить всё, что я думаю по поводу этого броузера, а то к сути статьи я перейду не скоро. Итак Internet Explorer 6 живет в своей виртуальной машине (Windows XP), а веб-сервис в хосте (Ubuntu), и стоит задача по проброске порта веб-сервера(Nginx) из хоста в виртуалку.

Начал гугление этого вопроса я конечно же с хабра. Но http://vboxsvr у меня почему-то не заработал. Тогда я нашел другой вариант.

Проброс портов

Итак, что нужно сделать:

1. Заставляем Nginx/Apache слушать все интерфейсы:

Перезагружаем nginx:

2. Необходимо настроить сеть гостя. Выбираем “Виртуальный адаптер хоста”. Должно получиться что-то типа этого:

3. Смотрим, какой IP адрес у нас получает гостевой компьютер в хостовой системе.

Прописываем название хоста в файл C:\windows\system32\srivers\etc\hosts в госте.

ТеперьВсё, теперь хостовый сервис должен открыться в гостевом броузере!

Доступ в интернет из гостя

Но есть небольшая проблема. При такой настройке в гостевой машине не работает остальной интернет. Для того, чтобы он заработал, надо добавить в настройки гостя в VirtualBox второй сетевой адаптер типа NAT.

После этого в гостевой машине появится новое сетевое подключение, и Интернет заработает.

Теперь в госте работает и сервис хоста и Интернет!

7 Comments

  1. А можно подробней о 1) пункте “Заставляем Nginx/Apache слушать все интерфейсы”… Какой файл надо редактировать?

    И еще вопросик: У меня в ВиртуалБоксе не активны почему-то Сетевые адаптеры.. 🙁 Интернет в виртуалке есть, но 2-й адаптер добавить не могу

    1. Конечно.
      1) Это достигается директивой “Listen 0.0.0.0:80” в конфиге Apache. (httpd.conf или что скорее всего файл с vhost вашего сайта).
      2) Неактивны закладки “Адаптер 2…4” в настрофках виртуальнйо машины?

      1. С адаптерами разобрался. Они были не активны из-за того, что система (виртуалка) была запущена. Настраивать надо на выключенной системе..
        А вот прописать «Listen 0.0.0.0:80″ в файле httpd.conf не помогает, так как Апач не стартует – пишет ошибка… Может как-то по другому прописать надо?..

        1. Конечно на выключенной 🙂 Как именно апач ругается, может у вас 80 порт кем-то другим занят?

          1. “(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
            no listening sockets available, shutting down” – похоже, что да – занят порт! Как проверить, чем занят?

  2. У меня походу все виртуальные хосты (сайты) на 80-м порте.. Но мне не получился их менять, так как я работаю на фирме (мы пользуемся Сабвершином), и у нас у всех должны быть одинаковые конфиги… Может есть альтернатива какая?

    1. 1. Добавить свой конфиг в svn:igonre чтобы он не закоммитился
      2. А в чём проблема-то, один веб-сервер может обслуживать несколько сайтов. Если второй стартуете – присвойте ему другой порт, и вызывайте по нему.
      Listen 0.0.0.0:81 например.

Leave a Comment