3

Я запускаю веб-приложение на виртуальной машине.

Я вижу приложение на localhost:8888 через браузер из виртуальной машины.

Я не вижу приложение с хоста по тому же URL. Это цель.

Я пробовал VBoxManage modifyvm "VM name" --natdnshostresolver1 on но это не оказало влияния.

Моя конфигурация:

  • Хост: Windows 7
  • Гость: Ubuntu 16.04.1 LTS
  • VirtualBox: 5.1.4r110228

Гостевая конфигурация

(Гость) ifconfig когда на NAT

kirkland@GC:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:d0:fc:0e  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::4c67:70b5:c37b:8fa8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7431 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3587 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:7444830 (7.4 MB)  TX bytes:731870 (731.8 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1566 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1566 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:655936 (655.9 KB)  TX bytes:655936 (655.9 KB)

(Гость) /etc /hosts

127.0.0.1   localhost
127.0.1.1   GC

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

2 ответа2

3

URL localhost:8888 является только допустимым URL-адресом внутри вашей виртуальной машины. Вне этой виртуальной машины вам придется использовать ip.ad.dr.ess:8888 или hostname:8888 . В последнем случае вводится зависимость от разрешения имени хоста в ip.ad.dr.ess в вашей сети.

По умолчанию при создании виртуальной машины в VirtualBox сетевой адаптер 1 устанавливается на NAT. Это даст виртуальной машине IP-адрес 10.0.2.15/24 и маршрут по умолчанию 10.0.2.2 (который должен быть вашим хостом). Короче говоря, окна не будут перенаправляться на адрес, для которого они предоставляют NAT, без предварительного просмотра большего количества обручей.

Завершение работы виртуальной машины и изменение настройки сетевого адаптера виртуальной машины1 на "мостовой" позволит вашему хосту (и любому хосту в вашей локальной сети) обмениваться данными с этой виртуальной машиной без добавления каких-либо специальных маршрутов или скачков.

Перезагрузите ВМ. Проверьте подключение к localhost:8888 . Также проверьте подключение к hostname:8888 (при условии, что имя хоста not добавлено к адресу loopback/localhost в файле /etc /hosts) и ip-address:8888 . EDIT: На основании / и т.д. / подробности Хостов размещены, вы are обязательными для вашей виртуальной машины и , следовательно , на веб - приложении к сети замыкания на себя. Эта конфигурация не может использоваться вне виртуальной машины вообще.

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

Чтобы найти IP-адрес виртуальной машины: откройте окно терминала / консоли на рабочем столе Ubuntu (ctrl-alt-T), мы используем команды hostname, ifconfig и grep /etc/hosts чтобы соединить части и найти ваш адрес. В открытом терминале введите hostname затем нажмите Enter. Это, вероятно, gc. В этом же терминале наберите ifconfig eth0 | awk '/Bcast/{print $2}' покажет адрес. У вас должна быть строка в / etc / hosts с адресом, за которым следует имя хоста. grep [hostname] /etc/hosts или grep [address] /etc/hosts должен найти нужную вам строку. Если вы найдете что-то кроме вашего текущего адреса, за которым следует имя хоста, вам нужно изменить файл / etc / hosts, чтобы добавить правильную информацию.

Хосты в вашей локальной сети теперь смогут подключаться к IP-адресу вашей виртуальной машины через порт 8888. Для этих хостов / клиентов доступ к веб-приложению через hostname:8888 будет зависеть от клиентских файлов хостов, локальных DNS или даже сервисов mDNS, возможно, предоставляемых на вашем DHCP-сервере.

0

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

Чтобы добавить статический маршрут, сделайте следующее: Посмотрите в свойствах сети вашего хоста. Вы должны найти адаптер под названием VirtualBox Host-Only Network. Найдите его IP-адрес. Это, вероятно, 192.168.56.1, который я считаю по умолчанию, но может быть что-то еще. Назовите это abcd Далее получите IP-адрес вашего гостя. Назовите это wxyz (Первые 3 октета должны быть одинаковыми в обоих адресах.) Если у вас это есть, откройте приглашение DOS на вашем хосте и введите следующую команду:

route add w.x.y.z mask 255.255.255.0 a.b.c.d

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

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