Обращение к локальному хостингу с виртуальной машины VirtualBox

StackOverflow https://stackoverflow.com/questions/1261975

Вопрос

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

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

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

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

Это было полезно?

Решение

Гугление выдало вот это: http://data.agaric.com/localhost-from-virtualbox-xp-install-ubuntu

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

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

10.0.2.2   outer

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

Например:

http://10.0.2.2:3000/

Другие советы

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, в моем случае мост, как предложено выше, не нужен.Нет необходимости редактировать какие-либо файлы конфигурации.

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

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

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

10.0.2.2    localhost
10.0.2.2    subdomain.localhost

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

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

См. Документация VirtualBox инструкции о том, как установить для сетевых настроек режим «Мост».

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

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

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

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

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

Settings > Network > Adapter > Advanced > Port forwarding

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

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

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

macOS

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

10.0.2.2       localhost
10.0.2.2       127.0.0.1

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

Вам необходимо отредактировать файл хостов на виртуальной машине Windows так же, как и на локальном хост-компьютере:

C:\WINDOWS\system32\drivers\etc\hosts

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

127.0.0.1 локальный хост с 10.0.2.2 локальным хостом

Например:

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

Это означает, что ваша виртуальная машина должна указывать на ваш локальный компьютер для этих доменных имен.

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

Комбинация нескольких вещей в конечном итоге привела к тому, что с моей стороны все заработало.Запуск флэш-сервера на Macosx.

В моей виртуальной машине Windows я отредактировал файл хостов:

  • Запустите блокнот от имени администратора
  • открыть C:\windows\system32\drivers\etc\hosts
  • добавьте эту запись: 10.0.2.2 outer

Выключение виртуальной машины и моего Mac в VirtualBox:

  • Идти к VirtualBox > preferences > Network > Host-only Networks > + добавить сеть vboxnet1
  • Идти к My_VM > settings > Network > Adapter 1.
  • Выбирать Enable Network Adapter и установить Attached to: к Bridged Adapter.
  • Затем установите Advanced > Promiscuous Mode: к Allow VMs.
  • Нажмите OK
  • Идти к My_VM > settings > Network > Adapter 1.
  • Набор Attached to: вернуться к NAT.

Затем я пошел в Adapter 2

  • Набор Attached to: к Host-only Adapter и выберите предыдущую добавленную сеть vboxnet1.

Я запустил свой сервер на своем Mac, работающий на 127.0.0.1:5000 и теперь это было доступно на моей виртуальной машине по адресу http://10.0.2.2:5000

Чувак, какой кошмар тестировать IE на Mac.Как нет более простого пути?

Я решил проблему, добавив переадресацию портов в настройках Virtualbox в разделе сеть.Набор IP-адресов хоста 127.0.0.1 порт :8080 IP-адрес гостя :Укажите любой IP-адрес для порта веб-сайта (скажем, 10.0.2.5) :8080 Теперь доступ с гостевого компьютера http://10.0.2.5:8080 использование IE

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

10.0.2.2   outer

но чтобы сохранить его, если у вас нет администраторов прямо на вашей виртуальной машине, просто переместите файл хостов на рабочий стол, затем отредактируйте его, добавив строку 10.0....outer, сохраните файл и переместите его в исходное место.

проверьте, можете ли вы поразить родительский компьютер с помощью:ipconfig (получить ваш IP-адрес)

ping <ip> или telnet <ip> <port>

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

Тогда я смог получить доступ http://<ip>:<port>

В виртуальной коробке

  1. Установите для своей сети сетевой мост
  2. Перейдите в расширенные настройки беспорядочного режима:Позволять все

Теперь самое сложное — это ваш локальный хост. Если вы работаете с Node.js, установите IP-адрес 0.0.0.0, а затем найдите свой собственный IP-адрес, например cmd:ipconfig --> 10.0.1.3.

Введите этот адрес вместе с номером порта.И это сработает.

Общие шаги:

  • Общая сеть (добавьте сетевой адаптер только для хоста или мостовой адаптер)
  • настроить предпочтительный сервис для прослушивания соответствующего интерфейса (интерфейс, подключенный к общему сетевому адаптеру)
  • Используйте IP:Port для доступа к целевой службе, используйте IP-адрес, принадлежащий общей сети.

В Windows с виртуальной Windows 7 единственное, что мне помогло, — это использование NAT и переадресация портов (не удалось запустить мостовое соединение).Я нашел учебник здесь: http://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/ (прокрутите вниз до части с «Переадресация портов на виртуальную машину").

Благодаря этим изменениям я смог перейти на сайт xampp с помощью «http://192.168.xx.x:8888/мойсайт" в Internet Explorer 10 на моей виртуальной машине.

Я нашел IP-адрес в Панели управления XAMPP > Netstat («Система»).

Если вы используете Virtual Box, вы можете подключить Mac OSX (и, я думаю, Linux) к вашей виртуальной машине с Windows, используя одну строку кода --> Я предлагаю остановить коробку, прежде чем запускать ее в терминале.

VBoxManage modifyvm "YOUR VM NAME" --natdnshostresolver1 on

Отмечу, что это из документации Dinghy, которую я использую, но это команда виртуального ящика, поэтому ее не должно волновать, что вы используете, пока это Virtual Box.

Мне нужно работать на локальном хосте, а не на каком-то странном IP.

1) На терминале Mac выполните iconfig -a чтобы найти ваш локальный IP-адрес.Вероятно, это последний.

en7: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=10b<RXCSUM,TXCSUM,VLAN_HWTAGGING,AV> ether 38:c9:86:32:0e:69 inet6 fe80::ea:393e:a54f:635%en7 prefixlen 64 secured scopeid 0xe inet 10.1.5.60 netmask 0xfffffe00 broadcast 10.1.5.255 nd6 options=201<PERFORMNUD,DAD> media: autoselect (1000baseT <full-duplex,flow-control>) status: active

например10.1.5.60

2) загрузите образ Windows.начать > ввести cmd чтобы получить терминал

3) notepad c:\windows\system32\drivers\etc\hosts

4) добавьте следующую строку10.1.5.60 localhost

5) откройте IE, и следующий URL-адрес должен попасть на сервер, работающий на вашем Mac: http://localhost:3000/

Получите IP-адрес машины, на которой работает Apache (inet addr:в ifconfig) и введите его в адресную строку браузера виртуального ящика.

На самом деле ответ пользователя 477494 в принципе правильный.

Я применил ту же логику в других средах (хост OS X — виртуальная Windows XP), и это помогло.Мне пришлось переключить хост ЛАМПА стек, чтобы разрешить IP-адрес и порт Apache, но как только я это понял, я засмеялся.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top