Обращение к localhost с виртуальной машины VirtualBox - PullRequest
730 голосов
/ 11 августа 2009

У меня есть локальный сервер тестирования / разработки (HTTP, конечно), прослушивающий порт 8000.

Я работаю в Linux, поэтому для тестирования страницы в Internet Explorer 6, 7, 8 и т. Д. Я запускаю виртуальную машину с использованием VirtualBox; Мне также нужно посмотреть, как он выглядит на Firefox в среде Windows (например, шрифты разные).

На моей реальной машине я открываю веб-сайт, просто используя URL http://localhost:8000, как мне обратиться к этому локальному хосту с виртуальной машины?

Прямо сейчас мой обходной путь - использовать IP-адрес. Есть идеи получше?

Ответы [ 21 ]

905 голосов
/ 11 августа 2009

Погуглил это: http://data.agaric.com/localhost-from-virtualbox-xp-install-ubuntu

Он предлагает использовать IP: http://10.0.2.2, и у меня это сработало.

Итак, я отредактировал файл hosts, C:\windows\system32\drivers\etc\hosts, и добавил эту запись:

10.0.2.2   outer

Если вы тестируете на IE8, не забудьте поставить http:// в адресной строке. Просто поставить ip напрямую не получится.

Например:

http://10.0.2.2:3000/
389 голосов
/ 23 октября 2012

1001 * MacOS * Я использую Virtual Box на MacOS (ранее OS X), использую Virtual Box для тестирования IE в Windows и т. Д. Перейдите в IE в Virtual Box и получите доступ к localhost через http://10.0.2.2 для localhost или http://10.0.2.2:3000 для localhost:3000. Я сохранил сетевые настройки как NAT, нет необходимости для моста, как предложено выше в моем случае. Нет необходимости редактировать файлы конфигурации.

78 голосов
/ 29 марта 2014

Чтобы включить это в OSX, мне пришлось сделать следующее:

  1. Выключите виртуальную машину.
  2. Перейдите к VirtualBox Preferences -> Network -> Host-only Networks ->, нажмите значок «+». Нажмите ОК.
  3. Выберите ваш ящик и нажмите "Settings" icon -> Network -> Adapter 2 ->. В раскрывающемся списке «Attached to:» выберите «Host-only Adapter», и ваша сеть (vboxnet0) должна отобразиться ниже по умолчанию. Нажмите ОК.
  4. Как только вы снова запустите свой ящик, вы сможете получить доступ к localhost по адресу http://10.0.2.2/

Вы можете обратиться к нему с помощью localhost и получить доступ к другим локальным сайтам, добавив их ссылки на файл hosts (C:\windows\system32\drivers\etc\hosts), как показано ниже:

10.0.2.2    localhost
10.0.2.2    subdomain.localhost
49 голосов
/ 11 августа 2009

Скорее всего, ваша виртуальная машина настроена на NAT. Если вы установили для своей сети значение Bridged, вы сможете получить доступ к своему хост-компьютеру по его имени. Например, если ваше имя хоста «jsmith-Precision-7510» и вы хотите открыть http://localhost:3000/,, вы сможете просмотреть эту страницу со значением http://jsmith -Precision-7510: 3000 / .

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

См. Документацию VirtualBox для получения инструкций по установке сетевых настроек на Bridged.

29 голосов
/ 07 августа 2014

Я обнаружил, что 10.0.2.2:<port> работает, но только если Правильный режим установлен правильно. После установки моей виртуальной машины я перешел в «Настройки»> «Сеть»> «Адаптер 1.»

.

NAT установлен по умолчанию, а выпадающий список Promiscuous Mode отключен. Я переключился с NAT на Bridged Adapter, который включил выпадающий список Promiscuous Mode, а затем изменил значение с «Запретить» на «Разрешить виртуальные машины». Затем я переключился обратно на NAT, который снова отключил Promiscuous Mode, но сохранил новое значение.

После только этого изменения я смог запустить свою ВМ и увидеть свои хост-машины localhost:<port> на моей виртуальной машине в 10.0.2.2:<port>.

29 голосов
/ 26 августа 2016

Мне пришлось зайти в virtualbox и изменить сетевые настройки на «NAT». После этого я смог запустить localhost на моем хост-компьютере из моего эмулятора в virtualbox через http://10.0.2.2:3000

24 голосов
/ 27 июня 2013

Если у вас есть адаптер, подключенный к NAT , в настоящее время это лучшее и более элегантное решение для переадресации портов на локальные порты.

Settings> Network> Adapter> Advanced> Port forwarding

Просто вставьте новое правило и установите Host port и Guest port на 80 (для http) или 22 (для ssh) и т. Д.

Затем вы можете получить доступ к этой машине, просто набрав http://localhost

Вы также можете переключить NAT в прозрачный режим.

23 голосов
/ 30 марта 2017

MacOS

Если вы хотите настроить среду Windows с Virtualbox на Mac, просто используйте настройки NAT по умолчанию на адаптере, и в вашей виртуальной машине Windows перейдите в файл hosts и добавьте следующее:

10.0.2.2       localhost
10.0.2.2       127.0.0.1

В отличие от ответов выше, важно включить обе строки, иначе это не сработает.

21 голосов
/ 17 апреля 2013

Вам необходимо отредактировать файл хостов на виртуальной машине Windows так же, как вы делаете это для локального хоста:

C: \ WINDOWS \ system32 \ Drivers \ Etc \ хостов

И свяжите свои виртуальные хосты с 10.0.2.2. Если вы просто используете localhost, замените

127.0.0.1 localhost с 10.0.2.2 localhost

Например:

10.0.2.2 localhost
10.0.2.2 local.site1.com
10.0.2.2 local.site2.com

Это говорит вашей виртуальной машине указывать на ваш локальный компьютер эти доменные имена.

18 голосов
/ 15 августа 2018

Вам не нужно изменять файл hosts или любую конфигурацию Virtual Box. Сохраняйте настройки в NAT. Перейдите к своему экземпляру Windows и запустите «cmd» или откройте cmd.exe. Выполните команду «ipconfig» и получите IP-адрес Default Gateway . Просмотр http://10.0.2.2:8080 в Windows IE вы увидите такой же, как в Mac Safari http://localhost:8080/ или http://127.0.0.1:8080

...