У меня есть физический Linux-сервер (родительский). Я установил виртуальную машину на этот сервер (Virtualbox). Я создал веб-проект на этой виртуальной машине, и теперь он доступен из 192.168.10.10
. Но он доступен только с физического (родительского) сервера.
Как я могу настроить этот физический сервер для пересылки входящих запросов на его IP-адрес виртуальной машины?
Например, я могу получить доступ к своему родительскому серверу с помощью http://80.80.80.80
, поэтому всякий раз, когда какой-либо посетитель приходит, он будет видеть контент из /var/www/html/index.html
.
Есть ли шанс позволить виртуальной машине принимать все входящие запросы самостоятельно?
Будем очень признательны за любые советы или ссылки на другие похожие темы.
С VirtualBox у вас есть несколько вариантов. Все настраивается во вкладке Настройки - Сеть.
Если вы можете получить другие общедоступные IP-адреса в своей сети, самый простой вариант - установить для сетевого интерфейса (NIC) значение Режим моста. Под Настройки -> Сеть -> Адаптер1 изменение Прикреплено к: мостовому адаптеру и под Название: выберите сетевой интерфейс хоста (например, eth0
). Это фактически предоставляет гостевому (виртуальному) сетевому адаптеру ту же сеть, что и ваш хост. eth0
. Затем виртуальная машина может получить свой собственный общедоступный IP-адрес (например, 80.80.80.81) либо статически, либо DHCP.
Если у вас может быть только один IP-адрес (80.80.80.80), и вы не можете получить больше, вам необходимо настроить NAT и Перенаправление порта. Снова это легко сделать под Настройки -> Сеть -> Адаптер1. Устанавливать Прикреплено к: NAT и под Перенаправление порта которое появляется в нижней части диалогового окна, добавляет переадресацию для порта 80. С этого момента все, что подключается к 80.80.80.80 порту 80, будет перенаправляться на виртуальную машину и обрабатываться там.
Однако в этом случае предостережение заключается в том, что хозяин не должен запускать собственный Apache или что-либо еще, прослушивающее порт 80. В качестве альтернативы, если вас устраивает использование нестандартных портов, вы можете перенаправить порт хоста 8080 на порт 80 гостя, и тогда URL-адрес будет http://80.80.80.80:8080 - таким образом вы можете установить Apache как на хозяин и гость.
Надеюсь, это поможет :)
К какой сети подключен ваш адаптер виртуальной машины (только хост, сеть NAT, внутренняя сеть, мостовой адаптер)? Чтобы узнать, выберите ВМ> Настройки> Сеть и проверьте параметры подключения. Вы можете использовать мостовой адаптер в сетевых настройках виртуальной машины и выставить машину непосредственно в сети и назначить ей IP-адрес, который можно напрямую адресовать (например, если родительский сервер http://80.80.80.80
с /24
, вы можете назначить виртуальной машине адрес в той же сети, например .81
)