1

Я установил VirtualBox 5.0.14 на хост Lubuntu 15.10 и создал виртуальную машину с Lubuntu 14.04.5 LTS в качестве гостевой ОС.

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

До сих пор я создал адаптер vboxnet0 только для хоста, который можно успешно пропинговать с хост-ОС. Однако я не могу получить доступ к порту 80, используя веб-браузер или другие средства.

Что я могу сделать, чтобы найти причину проблемы и правильно настроить ее?

Настройки сети ВМ

Настройки VirtualBox vboxnet0

Результаты теста внутри гостя

После загрузки виртуальной машины и запуска Apache (используя sudo service apache2 start) я могу без проблем получить доступ к тестовой странице на http://localhost/ используя Firefox внутри гостевой ОС.

Соответствующий Apache VirtualHost определен как <VirtualHost *:80> в /etc/apache2/sites-enabled/000-default.conf , поэтому я не понимаю, почему он не был бы доступен с любого хоста.

Также sshd и MySQL сервер работают на гостевой. Я могу SSH к localhost и Nmap показывает все соответствующие открытые порты (22, 80, 3306).

Результаты теста на хосте

В операционной системе хоста vboxnet0 выглядит следующим образом и доступен для проверки:

% ifconfig vboxnet0
vboxnet0  Link encap:Ethernet  HWaddr 0a:00:27:00:00:00  
          inet addr:192.168.10.10  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:192 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:16176 (16.1 KB)

% ping 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.023 ms

Однако ни один из портов не доступен:

% nmap 192.168.10.10 -p 22,80,3306

Starting Nmap 6.47 ( http://nmap.org ) at 2016-08-20 21:29 CEST
Nmap scan report for 192.168.10.10
Host is up (0.000027s latency).
PORT     STATE  SERVICE
22/tcp   closed ssh
80/tcp   closed http
3306/tcp closed mysql

Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds

Попытка сопоставить IP-адрес

Согласно комментарию @MarkoPolo:

Несмотря на то, что 192.168.10.10 является эхо-запросом из хост-ОС, я не могу получить доступ к этому IP-адресу из гостевой ОС.

Фактически, гостевая ОС имеет IP-адрес из диапазона DHCP, указанного для vboxnet0:

eth1      Link encap:Ethernet  HWaddr 08:00:27:0d:b4:6a  
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe0d:b46a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1180 (1.1 KB)  TX bytes:1422 (1.4 KB)

IP-адрес 192.168.56.101 недоступен из операционной системы хоста, т. Е. Недоступен для проверки связи, нет доступа через веб-браузер.

Я попытался обновить IP-адрес eth1 до 192.168.10.10 с помощью ifconfig . Затем Apache доступен на http://192.168.10.10 из гостевой ОС, однако по-прежнему нет доступа (кроме ping) к хост-ОС.

2 ответа2

3

Короче ответ.

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

При настройке адаптера «только хост» в ОС хоста адрес IPv4 должен быть 192.168.56.1 . Затем, после настройки, в гостевой ОС настройте интерфейс eth1 на использование IP-адреса, например 192.168.56.10 .

Более длинный ответ.

При использовании VirtualBox внутренний псевдопрограммный маршрутизатор настроен на работу с диапазоном IP-адресов 192.168.56.x Диапазон DHCP-сервера, для которого не следует устанавливать статические IP-адреса, будет находиться в диапазоне от 192.168.56.101 до 192.168.56.254 а для установки статического IP-адреса вам потребуется установить IP-адрес между 192.168.56.2 и 192.168.56.100 . Поэтому я бы рекомендовал использовать конфигурацию гостевой ОС (Lubuntu 14.04.5 LTS) с IP-адресом, таким как 192.168.56.10 .

Но не устанавливайте это значение 192.168.56.10 в области «Адаптер», как оно настроено. Вместо этого настройте параметры адаптера следующим образом; см. скриншот Mac OS X ниже для справки:

  • IPv4-адрес: 192.168.56.1
  • Маска сети IPv4: 255.255.255.0
  • IPv6-адрес: [Оставьте пустым]
  • Длина сетевой маски IPv6: 0

Снимок экрана: сетевые настройки для интерфейса только для хоста в версии VirtualBox для Mac OS X.

А затем на вашей гостевой ОС (Lubuntu 14.04.5 LTS) мне кажется странным, что ваша настройка eth1 будет настройкой DHCP и будет иметь адрес 192.168.56.101 . Я использую Ubuntu 14.04.5 с очень похожим подключением только на хосте для разработки Apache также на втором адаптере, и моя установка разбита следующим образом:

  • eth0 с IP-адресом 10.0.2.15 .
  • eth1 с IP-адресом 192.168.56.10 .

И мои настройки в /etc/network/interfaces следующие:

auto eth1
iface eth1 inet static
      address 192.168.56.10
      netmask 255.255.255.0

Поэтому дважды проверьте этот IP-адрес только для соединения с хостом и дважды проверьте конфигурацию сетевых интерфейсов.

0

Цель только для хостинга сети с использованием VirtualBox

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

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

Outside world <--> NIC <--> Host <--> vboxnet0 <--> virtual NIC <--> Guest OS
                   ---                --------      -----------
                                                   (virtual NIC <--> Guest OS #2)
                                                    ...
                                                   (virtual NIC <--> Guest OS #n)

Различение между хостом и гостевым IP-адресом

Предполагается, что 192.168.10.10 будет IP-адресом гостевой ОС, поскольку на хост-компьютере он отображается как vboxnet0 .

Это предположение неверно - фактически 192.168.10.10 является IP-адресом хост- машины! Предположим, что у вас есть несколько гостевых машин в сети только для хоста, тогда все они могут получить доступ к хост-ОС с помощью этого IP-адреса.

vboxnet0 действует как шлюз между хостом и гостем. Вы можете легко убедиться в этом: если вы откроете какой-либо порт на хост-машине (например, с помощью nc), вы сможете получить доступ к этому порту из гостевой ОС 192.168.10.10 .

Фактический IP-адрес гостя - как вы отметили выше - 192.168.56.101 который берется из конфигурации DHCP в настройках VirtualBox vboxnet0 . Это то, что и следовало ожидать. Вы должны иметь доступ к вашей гостевой ОС на хосте 192.168.56.101 .

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

Возможная причина проблемы и решения

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

Попробуйте поместить хост-компьютер в ту же подсеть, что и гостевые машины, изменив настройки VirtualBox следующим образом:

Проверьте таблицу маршрутизации на вашем хост-компьютере, используя route . Теперь должен существовать маршрут к 192.168.56.0 / 255.255.255.0 через vboxnet0 , созданный VirtualBox.

Теперь вы сможете получить доступ к Apache гостя с хоста через http://192.168.56.101 и - при необходимости - получить доступ к хост-машине с гостя через 192.168.56.1 .

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