3

Хорошо, вот что я хочу сделать: я хочу подключиться к веб-серверу, работающему на виртуальной машине.

У меня на хост-компьютере работает веб-сервер Apache: Windows Vista, доступ к которому можно получить через Интернет.

У меня VirtualBox с гостевой машиной: Ubuntu, на которой также есть веб-сервер Apache, и я хочу иметь доступ к обоим серверам из Интернета.

Я искал и искал, пытаясь выяснить, как это сделать, и я не мог найти пошаговые инструкции о том, как его настроить.

Похоже, обратный прокси-сервер выполнит то, что я хочу, но я не уверен, как это настроить.

Спасибо за помощь в продвижении!

4 ответа4

3

Есть несколько разных режимов виртуальной сети.

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

Если вы выбираете NAT, вы должны настроить переадресацию портов на хост-машине так же, как на маршрутизаторе.

Если вы последуете моему совету и выберете bridged, то любая виртуальная машина появится в вашей сети как физически независимый компьютер. Все, что вам нужно сделать, это найти IP-адрес вашей виртуальной машины (или установить его как статический), а затем перенести порт веб-сервера так же, как и любую другую машину с вашего маршрутизатора.

2

Я делал это с сервером CentOs на моем VirtualBox

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

Зайдите в свой ящик Ubuntu, и ему автоматически будет назначен адрес от DHCP, в противном случае вам нужно будет вручную установить статический IP-адрес в Администрирование> Сеть.

Получив свой адрес, вы можете проверить его, используя ifconfig он вернет список ваших сетевых интерфейсов. Ищите eth0, и это IP-адрес.

Запишите это и введите его в адресную строку веб-браузера вашей ОС Vista, должен появиться экран Apache или все, что вы использовали в своем каталоге www.

РЕДАКТИРОВАТЬ:

Поскольку вы уже используете порт 80 и этот порт перенаправлен, вы можете установить другой порт на сервере Ubuntu, возможно, 8080. Отредактируйте файл конфигурации, который может быть расположен по адресу /etc/apache2/apche2.conf .

Затем отредактируйте Listen 80 to Listen 8080 и перезапустите apache /etc/init.d/apach2 restart После этого вы сможете увидеть ваш установочный сервер Ubuntu по адресу ubuntuhostip:8080

Затем просто создайте новую службу в брандмауэре маршрутизаторов с начальным портом 8080 и конечным портом 8080, а затем установите правила брандмауэра, но с IP-адресом ubuntu, установленным на служебном порту 8080.

Таким образом, вы можете получить доступ к:

Сервер Vista: mainip

Сервер Ubuntu: mainip: 8080

1

Вы не можете иметь два разных ответа на одном и том же порту (например, 80 для WWW) на одном и том же IP-адресе.

Таким образом, вам нужно либо изменить один из веб-серверов на другой порт (скажем, 81), а затем перенаправить этот порт в маршрутизаторе на второй веб-сервер.

Кроме того, если ваш маршрутизатор достаточно умен, вы можете настроить его так, чтобы он отвечал на пользовательский порт (81) и переадресовывал его на 2-й веб-сервер через порт 80 (следовательно, сохраняя конфигурацию веб-сервера на стандартном порту 80 для внутреннего тестирования / использования).

В любом случае, из Интернета вы можете получить доступ к веб-серверу 1 через стандартный порт 80 (http://www.servername.com), а второй через другой порт (http://www.servername.com:81).

1

Другой вариант - использовать Apache, работающий на вашей хостовой ОС, в качестве прокси для Apache, работающего на вашей гостевой ОС. Я думаю, что это называется mod_proxy.

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