Как получить доступ к веб-серверу в виртуальной коробке с хост-машины [закрыто]

29

У меня есть машина с Windows Vista, на которой VirtualBox работает под управлением Ubuntu.

В Ubuntu я запускаю веб-сервер по адресу http://127.0.0.1:3000/

Как получить доступ к этому адресу с моего хост-компьютера (окна Windows)?

Argh
источник
Простейшим вариантом является использование переадресации портов. Это может быть настроено в Настройки-> Сеть. Проверьте эту ссылку
спартанец
Если вы действительно настроили веб-сервер вашего гостя на 127.0.0.1, то вы не можете получить к нему доступ со стороны гостя. Localhost / 127.0.0.1 - это петлевой адаптер (в памяти), для работы которого даже не требуется установка сетевой карты. Если вы измените IP-адрес вашего веб-сервера на что-то отличное от loopback, то ответы ниже помогут вам.
Младен Б.

Ответы:

28

Вы можете изменить режим гостевой сети с NAT на Bridged. Просто закройте гостя Ubuntu, перейдите на страницу «Настройки» в VirtualBox, выберите категорию «Сеть» и измените список «Присоединено к» с NAT на Bridged Mode.

Редактировать:

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

IP-адрес для eth0: 192.168.1.3

Используйте этот адрес в строке браузера хост-компьютера, а затем укажите порт, который вы используете. Если это что-то отличное от порта 80. т.е. если вы настроите его на использование порта 666, то адрес будет 192.168.1.3:666

Другой способ найти IP-адрес - подключиться к встроенному в ваш маршрутизатор HTTP-серверу и посмотреть настройки локальной сети. Каждая машина в сети должна быть указана по имени хоста и IP. На моем маршрутизаторе большинство других, которые у меня были, вы можете сделать это, набрав 192.168.1.1 в адресной строке. если это не удается, попробуйте тот же адрес на порту 81. Если это не удалось, ПРОЧИТАЙТЕ РУКОВОДСТВО.

ОДС
источник
Но тогда как узнать, что это за IP-адрес? Thx
SSH Это
Это будет работать, но опция «только для хоста» не открывала доступ к корпоративной сети
Карлос Гарсия
2
Я единственный здесь, кто думает, что конечная точка гостя 127.0.0.1 может быть достигнута только из гостя (это точка localhost)? Не должно быть никакого способа получить доступ к такой конечной точке из чего-либо за пределами гостевой машины (поскольку это адаптер с обратной связью, он даже не требует установленной сетевой карты).
Младен Б.
если я введу этот 192.1681.3 в качестве IP-адреса для записи A на Godaddy, он не будет работать, очевидно, он ожидает, что внешний IP-адрес, если я это укажу, все еще не работает в течение некоторого времени, я хочу проверить доменное имя перед собирается на EC2
PirateApp
10

Зависит от того, как вы настраиваете сеть в гостевой ОС Ubuntu. Если вы настроили его на использование NAT, и в вашей сети работает DHCP-сервер, просто запустите:

ifconfig | grep inet

в окне Ubuntu - вы увидите IP-адрес, назначенный гостю Ubuntu.

Пример:

#ifconfig | grep inet
  inet addr:10.0.0.2  Bcast:10.255.255.255  Mask:255.255.255.0
  inet addr:127.0.0.1  Mask:255.0.0.0

Затем просто нажмите http://10.0.0.2:3000

fsckin
источник
Ну, в моем случае адрес должен быть 10.0.2.15:3000/public и по умолчанию vista работает в режиме DHCP ... (машина ubuntu также настроена на использование NAT), однако я не получаю ответ :(
Argh
Хммм только что понял, что у меня нет DHCP-сервера - у меня работает Vista Home ...
Argh
VirtualBox имеет собственный DHCP-сервер, который обрабатывает виртуальные машины, иначе виртуальные машины не получат IP-адрес автоматически, не установив их статически. Я думаю, что ваша проблема может заключаться в том, что у вас Apache не прослушивается на всех интерфейсах - просто localhost (127.0.0.1). Убедитесь, что в / etc / apache2 / sites-available / default в директиве Listen указано 80, а не 127.0.0.1:80 для help.ubuntu.com/9.04/serverguide/C/httpd.html
Cory Plastek,
Это, вероятно, причина.
fsckin
4

Ваш Windows-бокс и Ubuntu-бокс (физические или виртуальные в данном случае не имеют значения) должны иметь IP-адрес в одной подсети, чтобы они могли общаться друг с другом через TCP / IP. Вы можете назначить дополнительный адрес каждой ОС, используя одну из частных подсетей IP (см. RFC 1918 ). Как только у них обоих будет адрес в одной и той же подсети, настройте веб-сервер на прослушивание того, который вы дали Ubuntu, а затем используйте этот IP-адрес в браузере в Windows для его загрузки.

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

Джастин скотт
источник
2

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

Теперь вы запускаете экземпляр виртуальной коробки, а затем то, что fsckin предлагает, чтобы узнать, каков ip новой сети .

Таким образом, у вас есть подсеть с вашим компьютером и вашей виртуальной машиной.

fampinheiro
источник
Итак ... Я сделал, как вы сказали, захватил мой IP-адрес. Затем я попытался получить доступ к веб-серверу (доступ к которому я могу получить в гостевой системе как 127.0.0.1:3000 ) с использованием allocIP: 3000, и я не получил ответа. Я мог однако пропинговать ip от хозяина
Argh
Вам нужно открыть брандмауэр на порту 3000.
fampinheiro
Только хост не будет работать из коробки: serverfault.com/questions/205477/…
givanse
0

Прежде всего, вам нужно сделать то, что ответ 1 говорит:

«Вы можете изменить режим гостевой сети с NAT на Bridged. Просто закройте гостя Ubuntu, перейдите на страницу« Настройки »в VirtualBox, выберите категорию« Сеть »и измените список« Присоединено к »с NAT на Bridged Mode».

Затем, чтобы получить свой IP-адрес:

На вашей виртуальной машине откройте командную строку и выполните:

ip addr show

Вы, вероятно, увидите строку, которая выглядит примерно так:

inet 192.168.43.96/24 ....

До этого также есть строка с

inet 127.0.0.1

Но ты не хочешь этого! Вы хотите адрес 192. Это адрес вашей виртуальной машины в вашей локальной сети. Он должен быть доступен любому устройству, подключенному к той же локальной сети.

Теперь на вашем хост-компьютере отредактируйте файл / etc / hosts (не ~ / etc). Имя файла - hosts (это не имя папки)

добавьте строку, которая выглядит следующим образом:

192.168.43.96 myvm.nameofmywebsite.com

Теперь перейдите в браузер хост-машины и введите myvm.nameofmywebsite.com

Надеюсь, что это сделает!

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

Энди Вайнштейн
источник