Как мне получить доступ к серверу Ubuntu, работающему в VirtualBox, извне

Я установил Ubuntu Server 12.04 LTS на свой ноутбук через VirtualBox.Я установил LAMP, OpenSSH, почтовый сервер.

Войдя в систему, я запустил ifconfig. Он дал мне адрес inet как 192.168.0.3.

Итак, это должен быть адрес, по которому я должен иметь доступ к серверу, верно? Но я не могу получить к нему доступ через браузер .. сервер постоянно работает в VirtualBox, но, тем не менее, он не работает в других браузерах или на моем мобильном телефоне.Что я должен сделать, чтобы сделать его доступным для общественности?

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

Документация VirtualBox имеет следующий список сетевых режимов:

Каждый из восьми сетевых адаптеров может быть отдельно сконфигурирован для работы в одном из следующих режимов:

Не прикреплен

В этом режиме VirtualBox сообщает гостю о наличии сетевой карты, но об отсутствии подключения - как если бы к карте не был подключен кабель Ethernet. Таким образом, можно "потянуть" за виртуальный кабель Ethernet и прервать соединение, что может быть полезно для информирования гостевой операционной системы об отсутствии сетевого подключения и принудительной перенастройки.

Преобразование сетевых адресов (NAT)

Если все, что вы хотите, это просматривать веб-страницы, загружать файлы и просматривать электронную почту внутри гостевого, то этого режима по умолчанию должно быть достаточно для вас, и вы можете спокойно пропустить остальную часть этого раздела. Пожалуйста, обратите внимание, что при использовании общего доступа к файлам Windows существуют определенные ограничения (подробнее см. раздел “Ограничения NAT”).

Мостовая сеть

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

Внутренняя сеть

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

Сеть только для хоста

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

Общее сетевое взаимодействие

Редко используемые режимы используют один и тот же общий сетевой интерфейс, позволяя пользователю выбирать драйвер, который может быть включен в VirtualBox или распространяться в пакете расширений.

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

Чтобы иметь возможность получить доступ к серверу со своего мобильного устройства (т.е. из-за пределов локальной сети), после настройки сети вам дополнительно потребуется настроить переадресацию портов на вашем DSL-модеме.

Чтобы предоставить немного больше информации, вот фактические шаги, которые необходимо предпринять для настройки мостовой сети:

Чтобы включить мостовую сеть, все, что вам нужно сделать, это открыть диалоговое окно настроек виртуальной машины, перейти на страницу "Сеть" и выбрать "Мостовая сеть" в выпадающем списке для поля "Подключено к". Наконец, выберите нужный интерфейс хоста из списка внизу страницы, который содержит физические сетевые интерфейсы ваших систем. Например, на обычном MacBook это позволит вам выбирать между "en1: AirPort" (который является беспроводным интерфейсом) и "en0: Ethernet", который представляет интерфейс с сетевым кабелем.

Источник

Затем я перезапустил виртуальную машину и смог подключиться к ней извне.