VirtualBox гостьова ОС, що отримує доступ до локального сервера на хост-ОС


107

На моєму хості Ubuntu у мене локальний веб-сервер. Я встановив VirtualBox і Debian як гість.

Я хотів би, щоб гість Debian міг перейти до мого веб-сервера, що працює на моєму хості Ubuntu (наприклад, я просто набираю http://localhost:8080/браузер під Debian).

Як це можна зробити?

Відповіді:


176

Увімкніть ОДИН мережевий адаптер. Встановіть його в NAT і запустіть свою машину. Не потрібно нічого налаштовувати.

У браузері гостьової машини введіть http://10.0.2.2, який покаже вам той самий вміст, що і "localhost" в хост-ОС.

10.0.2.2 - "шлюз за замовчуванням" для NAT-з'єднань, а IP-адреса вашої гостьової ОС - 10.0.2.15

Звичайно, ви можете встановити "ТОЛЬКО ХОСТО" або "Внутрішня мережа", що дозволить отримати ще одну розширену конфігурацію. Рекомендую залишитися з NAT.

Насолоджуйтесь

М.


1
"Увімкнути ОДИН мережевий адаптер". Де це робиться?
jshen

1
Примітка: Якщо у вас на хост-сервері налаштовані віртуальні хости, налаштовані на імені, ви можете отримати доступ до них, просто створивши зіставлення у файлі хостів-машин гостя для 10.0.2.2 yourvirtualhostname.local (or whatever)
користувача

@Ви впевнені, що ваш останній коментар спрацює? У мене на хості VB встановлено віртуальний хост http://example.dev, а відображення 10.0.2.2будь-чого на моєму гості VB зовсім не допомагає отримати доступ до нього.
Томіца Корач

1
@ ТомицаКораћ це працює. Наприклад, див .: askubuntu.com/questions/36183/…, однак, вам, мабуть, слід відкрити окреме питання, щоб вирішити це.
Користувач

1
"Увімкнути ОДИН мережевий адаптер" означає, що в мережевих налаштуваннях вашої віртуальної машини (в межах VirtualBox) вмикається лише один із адаптерів. Мене трохи розгубило, коли я вперше прочитав це.
Маркес

5

Також слід звернути увагу на використання ip-адреси 10.0.2.2, якщо, наприклад, ви використовуєте MAMP, додайте номер порту: 8888, щоб прочитати повну адресу http://10.0.2.2:8888


3

Найпростіший спосіб дозволити безперебійний доступ до вашої гостірної машини VirtualBox - встановити мережевий пристрій як «міст» для вашого eth0 у вашій локальній мережі.

Гостьова машина захопить IP-адресу локальної мережі через DHCP з вашого маршрутизатора.


Для уточнення: це налаштування в клієнтській програмі. Це працювало для мене - мені просто знадобилося деякий час, щоб зрозуміти це, тому що IE був занадто дурним, щоб припустити, що я хотів HTTP-з'єднання, коли я вводив IP-адресу та порт у адресний рядок.
Майкл Шепер

2

Те, що я знайшов, вирішило проблему для мене - переконався, що адаптер Windows VirtualHost-Only встановлений на .1 адресу для ip-діапазону, тож мій адаптер для віртуального вікна лише 192.168.58.20, але ip для адаптера Windows - 192.168. 58.1


2

Якщо рішення @Melvyn не працює, в якості альтернативи ви можете встановити мережевий адаптер для мосту.
Перейдіть до Settings-> Network->, а потім перейдіть Attached toдо мостового адаптера.

введіть тут опис зображення

Ви повинні мати можливість зателефонувати батькові за своїм ім'ям хосту чи зовнішньою IP-адресою. Ви можете отримати його, перейшовши до командного рядка та ввівши ipconfig /all введіть тут опис зображення

введіть тут опис зображення

Оновлення Якщо ви налагоджуєте програму Visual Studio та використовуєте IIS Express.

йти до C:\Users\[uesername]\Documents\IISExpress\config\applicationhost.config

знайдіть свій веб-сайт <configuration>/<system.applicationHost>/<sites>/<site> (ім’я може бути оманливим, спробуйте перевірити місцезнаходження на диску в physicalPathатрибуті)

потім додайте в <bindings>розділ нову палітурку

<bindings>
    <binding protocol="http" bindingInformation="*:50766:localhost" />
    <binding protocol="http" bindingInformation="*:50766:48qzr12" />
</bindings>

де обов'язкова інформація *:[port]:[machineName]

Сподіваюсь, це заощадить певний час.


-1

Ну, ви можете змусити Debian запускати свій веб-сервер, але не використовуючи localhost. Вам доведеться використовувати IP-адресу хоста Ubuntu.

Припустимо, що гостьова ОС підключена до мережі, щоб захопити IP відкрити термінал і набрати ifconfig. Має виглядати щось на кшталт 192.168.0.2.


Привіт! Вибачте за занадто пізню відповідь. ifconfig на моєму хості показує 192.168.0.102 для eth0. Коли я ввожу цей ip в firefox в гості, він намагається підключитися на деякий час, а потім з'єднання припиняється: "Сервер на 192.168.0.102 забирає занадто багато часу, щоб відповісти" ... Отже, що я повинен спробувати далі? Заздалегідь спасибі.
Максим
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.