Как я могу получить доступ к Apache (на гостевой VirtualBox) с хоста?

142

Я установил Apache на виртуальную машину Ubuntu. Когда я захожу в гостевую систему и загружаю Firefox, я вижу, что Apache работает нормально, когда я захожу на localhost.

Я хотел бы получить доступ к этой же странице через хост. Я пытался использовать IP-адрес гостя, но ничего не получается.

В идеале я хотел бы настроить мой Windows 7 (хост) для запроса http://guestserver.comсервера Apache на гостя. Как я могу это сделать?

urok93
источник
Я нашел сайт, который помог мне решить его. Ниже приведены правильные ответы, но ничего не говорится о создании виртуального адаптера в ВМ. Сайт, на который я ссылался: christophermaier.name/2010/09/01/…
Судхир Дхумал

Ответы:

156

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

  1. Остановите свою виртуальную машину и откройте ее настройки в диспетчере VirtualBox (OSE)
  2. Перейти на вкладку Сеть
  3. Выберите режим сети по вашему выбору (мостовая сеть или только хост) (в приведенном ниже примере я использую только хост)

    Если вы хотите использовать мостовую сеть, вы должны выбрать правильный сетевой адаптер в Имя . Для проводных соединений вы бы выбрали что-то вроде eth0. Беспроводные соединения обычно называются wlan0(номера могут отличаться)

  4. Сохранить настройки
  5. Запустите Ubuntu VM
  6. Когда вверх, вы можете собрать IP-адрес, запустив:

    ifconfig | grep addr
    

    В приведенном ниже выводе 192.168.56.101указан IP-адрес, который можно использовать в хост-системе Win7 для доступа к вашей виртуальной машине:

    eth0  Link encap:Ethernet  HWaddr 08:00:27:70:27:fe  
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe7b:25fe/64 Scope:Link
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
    
  7. В хост-системе Windows отредактируйте с правами C:\Windows\System32\drivers\etc\hostsадминистратора и добавьте строку:

    192.168.56.101   guestserver.com
    

    Если у вас есть хост-система Ubuntu, отредактируйте /etc/hostsс помощьюsudo nano /etc/hosts

  8. Прибыль!
Lekensteyn
источник
2
Это отлично работает для сети только на хосте, и теперь я могу получить доступ к гостю из браузера хоста. Однако с мостовой связью, которую я хотел бы, у меня нет доступа к Интернету от гостя.
urok93
5
ipconfig - это не команда для Linux, это ifconfig. Вы имели в виду это?
Макс
7
На хосте Windows 7/8 файл находится здесь: C: \ Windows \ System32 \ drivers \ etc \ hosts
Dalen
2
@begueradj Эти шаги относятся к мостовым сетям, но некоторые сети не позволяют / дают вам несколько адресов. В моем универе я не мог использовать мостовую сеть из-за этого, в этих ситуациях я бы использовал NAT с переадресацией портов.
Лекенштейн
1
Включение двух сетевых адаптеров, одного NAT и моста, позволило мне видеть и быть замеченным.
stenci
13

В моем случае у меня есть маршрутизатор, назначающий статический IP-адрес моему хосту.

  1. Установите сетевой адаптер как Bridge:

    Настройки> Сеть> Адаптер 1 ( Включить сетевой адаптер )> Подключен к: ( Мостовой адаптер )> ОК

  2. Запустите виртуальную машину> войдите

  3. Изменить IP-адрес VirtualMachine с динамического на статический

    sudo nano / etc / network / interfaces

  4. В разделе Основной сетевой интерфейс измените слово dhcp на статическое и введите новый статический IP-адрес или прокомментируйте строку и добавьте новый.

:

#iface eth0 inet dhcp
iface eth0 inet static
        address 192.168.10.110
        netmask 255.255.255.0
        gateway 192.168.10.1
        network 192.168.10.0
        broadcast 192.168.10.255

Обратите внимание, что мой маршрутизатор работает на xxx.xxx. 10 .x, а ваш может быть на xxx.xxx. 0 .x или xxx.xxx. 1 .x или еще что-то.

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

Nuc134rB0t
источник
Я забыл сказать, что вы должны убедиться, что ваш / etc / hostname правильно настроен следующим образом: nameserver [your_isp_primary_dns] и nameserver [your_isp_secondary_dns]
Nuc134rB0t
8

Вместо того, чтобы пытаться установить для адаптеров значение Bridged или Host Only Network Adapter, вы можете попробовать переадресацию портов через брандмауэр / другие порты, когда ваш порт не настроен для соединений tcp и udp.

sp123
источник
6

Принятый ответ не работал для меня (я установил virutalbox внутри Ubuntu 12.04 LTS и внутри Virtualbox я установил Ubuntu 14.04 LTS Server). Я просто поменял местами сетевые настройки для Adapter1 и Adapter2, т.е. установил Adapter1 для «мостового сетевого подключения» и Adapter2 для «NAT», и он начал работать.

Гаурав Пандей
источник
Это было полезно, но измените порядок адаптеров, чтобы гость по умолчанию использовал NAT и мог подключаться к Интернету.
MadeOfAir
Это на самом деле работает для меня. Я пытаюсь получить доступ к виртуальной машине Windows из хоста Mac.
Бенджаминз
1
После нескольких часов чтения и попытки найти любое другое решение, которое я смог найти в Интернете, эта ваша идея сработала как шарм. Большое вам спасибо за то, что написали это! Использование Ubuntu 18.04 в качестве хоста и гостя.
Джон
5

Если вам нужен только определенный порт (скажем, если вы запускаете веб-приложение, такое как Jetty или Tomcat), просто выполните:

Настройки -> Сеть -> Установите один из адаптеров как NAT -> Нажмите «Переадресация портов» -> Установите соответствующий хост и гостевой порт.

После сохранения вы можете просто перейти с локального компьютера на localhost: hostport, и он будет перенаправлен на соответствующий порт виртуальной коробки, и все готово.

StationaryTraveller
источник
4

Если вы не можете подключиться через ip, вы вряд ли добьетесь успеха с именами dns при установке apache по умолчанию.

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

PvdL
источник
Я установил мост, но теперь гость не подключается к интернету.
urok93
ты получаешь IP в квестовой ОС? Я обычно настраиваю несколько сетевых карт, чтобы они соответствовали всем моим физическим сетевым картам. Можете ли вы выкинуть свой ifconfig из квеста и хоста
PvdL
Когда я работаю с беспроводной связью, она работает, но с кабелем нет, вот несколько скриншотов, показывающих мою конфигурацию: imageshack.us/photo/my-images/832/guestr.png imageshack.us/photo/my-images/846/virtualbox .png imageshack.us/photo/my-images/9/hostwin7.png
urok93
любая помощь в этом, пожалуйста?
urok93
похоже, что ваш компьютер напрямую подключен к Интернету, и это может быть причиной того, что ваш клиент не получает IP (v4)
PvdL
3

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

Platinor
источник
2

Ответ Лекенштейна правильный. Но если вы находитесь в корпоративной среде, вам, возможно, придется отключить прокси-сервер для IP-адреса вашего гостя. Например, если вы используете Mozilla Firefox на своем хост-компьютере и пытаетесь получить доступ к 192.168.56.101/ на гостевой, вам нужно перейти в Firefox Tools-> Options-> Advanced-> Network-> Settings и использовать «Нет». Proxy "или" No Proxy For -> 192.168.56.101 ".

SpaceRook
источник
2

Если вам нужен доступ к гостю, который получает другой IP-адрес из-за использования DHCP, я предлагаю получить доступ по его имени хоста. Однако для доступа через имя хоста, если хост является Windows, может потребоваться дополнительный инструмент.

Следующий текст был скопирован из моего собственного ответа на superuser.com. :

Я предлагаю вам использовать Multicast DNS, чтобы это исправить.

Ubuntu использует это по умолчанию через Avahi .

Хосту Windows нужен клиент Avahi для обнаружения других сервисов Avahi. Если ваш хост уже использует какое-либо программное обеспечение Apple, оно, вероятно, уже существует через службу Bonjour. Однако, если он еще не установлен, можно скачать небольшую версию Bonjour здесь: Bonjour Print Services . После установки вы сможете получить доступ к вашему гостю через .local.

Примечание. Система mDNS по умолчанию использует постфикс .local. Итак, если ваше имя хоста - «dev.myapp.com», то фактическое имя хоста будет «dev.myapp.com.local».

Spiralis
источник