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

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

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

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

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

Ответ 1

Googling включил это: 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/

Ответ 2

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

Ответ 3

Чтобы включить это в OSX, я должен был сделать следующее:

  • Завершите работу виртуальной машины.
  • Перейдите к VirtualBox Preferences -> Network -> Host-only Networks ->, щелкните значок "+". Нажмите "ОК".
  • Выберите свое поле и нажмите "Settings" icon -> Network -> Adapter 2 -> В раскрывающемся списке "Прикрепленный к:" выберите "Адаптер только для хоста", а ваша сеть (vboxnet0) должна появиться ниже по умолчанию. Нажмите "ОК".
  • Как только вы снова запустите свой ящик, вы сможете получить доступ к 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

Ответ 4

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

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

Обратитесь к документации VirtualBox для получения инструкций о том, как настроить сетевые настройки на мост.

Ответ 5

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

Ответ 6

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

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

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

Ответ 7

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

Settings > Network > Adapter > Advanced > Port forwarding

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

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

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

Ответ 8

MacOS

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

10.0.2.2       localhost
10.0.2.2       127.0.0.1

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

Ответ 9

Вам нужно отредактировать файл hosts на своей виртуальной машине 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

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

Ответ 10

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

Ответ 11

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

В моих Windows VM я редактировал файл hosts:

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

Завершить работу VM и на моем 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, и теперь это было доступно на моем vm в http://10.0.2.2:5000

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

Ответ 12

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

Ответ 13

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

10.0.2.2   outer

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

Ответ 14

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

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

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

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

Ответ 15

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

  • Установите сеть в сеть Bridge.
  • Перейти к расширенному набору Промежуточный режим: разрешить все

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

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

Ответ 16

Общие шаги:

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

Ответ 17

Невозможность перенаправить запросы на localhost в виртуальной машине на хост localhost теперь запекается в Windows (https://tools.ietf.org/html/rfc6761#section-6.3), включая виртуальную машину, доступную на https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/

Из соображений безопасности Microsoft теперь запрещает записи файла хоста переопределять адрес localhost на что-либо кроме адреса обратной циклы :: 1. Таким образом, добавив строку файла хоста VM, например,

10.0.2.2 localhost

будет игнорироваться.

Есть два способа (о которых я знаю), чтобы переопределить это:

1) использовать NETSH для переноса прокси на хост

netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=8000 connectaddress=10.0.2.2 connectport=8000

(где 10.0.2.2 - это шлюз по умолчанию на ВМ, а 8000 - это порт, который вы хотите разрешить на хосте.)

2) Настройте IIS для выполнения маршрутизации запросов приложений, а затем перезапишите запросы для localhost: port на hostIP: port

https://docs.microsoft.com/en-us/iis/extensions/configuring-application-request-routing-arr/creating-a-forward-proxy-using-application-request-routing

Ответ 18

В 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/mywebsite в Internet Explorer 10 на моей виртуальной машине.

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

Ответ 19

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

VBoxManage modifyvm "YOUR VM NAME" --natdnshostresolver1 on

Я буду замечать, что это из документов Dinghy, которые я запускаю, но это команда виртуального окна, поэтому на самом деле не стоит заботиться о том, что вы используете, пока его виртуальная ящик

Ответ 20

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

Ответ 21

Мне нужно работать на локальном хосте, а не на каком-то странном 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/

Ответ 22

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

Ответ 23

На самом деле, user477494 ответ в принципе правильный.

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

Ответ 24

Проверьте, установлен ли сервер Apache на виртуальной машине.

Это глупая ошибка, которую я совершил. Как только я установил сервер apache2, страница localhost жива.