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

44

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

Когда я вошел в систему, я побежал ifconfig. Это дало мне адрес inet как 192.168.0.3.

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

Chins
источник

Ответы:

58

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

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

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

Не прилагается

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

Трансляция сетевых адресов (NAT)

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

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

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

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

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

Сеть только на хосте

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

Общая сеть

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

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

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

Сергей
источник
3
+1 за упоминание конфигурации NAT по умолчанию и предложение мостового соединения.
Марк Микофски
+1 за то, что научил меня чему-то новому, полезному и актуальному для моей ситуации. Благодарность!
heypaleblue
Спасибо за ответ, но мне не нужно устанавливать DNS на моем сервере, чтобы сделать его доступным для других через Интернет?
Chins
@Chins: Нет, вам определенно не нужно устанавливать DNS на вашем сервере. Все, что мы обсуждали до сих пор, вообще не касается DNS.
Сергей
1
@ Сергей - я настроил свой виртуальный компьютер с мостовым адаптером. IP-адрес, отображаемый при выполнении ifconfig, равен 10.210.xx, но я все еще не могу замазать свой виртуальный компьютер с хост-машины. Что может быть не так?
Энди Дюфрен
9

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

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

Источник

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

БДН
источник
Имейте в виду, что, по крайней мере, на Mac OS 10.1.11 нельзя напрямую подключать адаптер Wi-Fi, но сначала нужно создать «сетевой адаптер» в настройках сети
дваждыjv
1
но как работают такие вещи, как статические IP-адреса в режиме моста? Все ли в одном соединении? Будет ли веб-сервер на виртуальной машине находиться на локальном хосте вместо какого-либо IP-адреса? Перенаправлены ли порты 1: 1? Так что, если Tomcat находится на виртуальной машине по адресу localhost: 8080, хост-машина просто набирает localhost: 8080 в своем браузере, чтобы увидеть виртуальную машину?
anon58192932