Проброс портов хоста (Ubuntu) в гостя (Windows) в VirtualBox
Как и многие веб-разработчики, мы вынуждены тестировать наш веб-сервис в разнообразных броузерах и средах. И всё бы было хорошо, но, нам также приходится тестировать его в Internet Explorer 6, что доставляет нам много принеприятнейших минут. Не буду говорить всё, что я думаю по поводу этого броузера, а то к сути статьи я перейду не скоро. Итак Internet Explorer 6 живет в своей виртуальной машине (Windows XP), а веб-сервис в хосте (Ubuntu), и стоит задача по проброске порта веб-сервера(Nginx) из хоста в виртуалку.
Начал гугление этого вопроса я конечно же с хабра. Но http://vboxsvr у меня почему-то не заработал. Тогда я нашел другой вариант.
Проброс портов
Итак, что нужно сделать:
1. Заставляем Nginx/Apache слушать все интерфейсы:
1 2 3 4 5 |
server { ... listen 0.0.0.0:80; ... } |
Перезагружаем nginx:
1 |
sudo service nginx restart |
2. Необходимо настроить сеть гостя. Выбираем “Виртуальный адаптер хоста”. Должно получиться что-то типа этого:
3. Смотрим, какой IP адрес у нас получает гостевой компьютер в хостовой системе.
1 |
host> ifconfig |
Прописываем название хоста в файл C:\windows\system32\srivers\etc\hosts в госте.
1 |
192.168.56.1 site.ru |
ТеперьВсё, теперь хостовый сервис должен открыться в гостевом броузере!
Доступ в интернет из гостя
Но есть небольшая проблема. При такой настройке в гостевой машине не работает остальной интернет. Для того, чтобы он заработал, надо добавить в настройки гостя в VirtualBox второй сетевой адаптер типа NAT.
После этого в гостевой машине появится новое сетевое подключение, и Интернет заработает.
Теперь в госте работает и сервис хоста и Интернет!
А можно подробней о 1) пункте “Заставляем Nginx/Apache слушать все интерфейсы”… Какой файл надо редактировать?
И еще вопросик: У меня в ВиртуалБоксе не активны почему-то Сетевые адаптеры.. 🙁 Интернет в виртуалке есть, но 2-й адаптер добавить не могу
Конечно.
1) Это достигается директивой “Listen 0.0.0.0:80” в конфиге Apache. (httpd.conf или что скорее всего файл с vhost вашего сайта).
2) Неактивны закладки “Адаптер 2…4” в настрофках виртуальнйо машины?
С адаптерами разобрался. Они были не активны из-за того, что система (виртуалка) была запущена. Настраивать надо на выключенной системе..
А вот прописать «Listen 0.0.0.0:80″ в файле httpd.conf не помогает, так как Апач не стартует – пишет ошибка… Может как-то по другому прописать надо?..
Конечно на выключенной 🙂 Как именно апач ругается, может у вас 80 порт кем-то другим занят?
“(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down” – похоже, что да – занят порт! Как проверить, чем занят?
У меня походу все виртуальные хосты (сайты) на 80-м порте.. Но мне не получился их менять, так как я работаю на фирме (мы пользуемся Сабвершином), и у нас у всех должны быть одинаковые конфиги… Может есть альтернатива какая?
1. Добавить свой конфиг в svn:igonre чтобы он не закоммитился
2. А в чём проблема-то, один веб-сервер может обслуживать несколько сайтов. Если второй стартуете – присвойте ему другой порт, и вызывайте по нему.
Listen 0.0.0.0:81 например.