Як я можу отримати доступ до Apache (у гості VirtualBox) від хоста?


142

Я встановив Apache на VM Ubuntu. Коли я заходжу до гостя і завантажую Firefox, я бачу, що Apache працює нормально, коли переглядаю localhost.

Я хотів би отримати доступ до цієї самої сторінки через хост. Я намагався використовувати IP-адресу гостя, але нічого не з'являється.

В ідеалі я хотів би налаштувати свій Windows 7 (хост) на запит http://guestserver.comсервера Apache у гостя. Як я можу це зробити?


Я знайшов сайт, який мені допоміг вирішити. Нижче відповіді правильні, але нічого не показують про створення віртуального адаптера в VM. Сайт, на який я звертався, є: christophermaier.name/2010/09/01/…
Sudhir Dhumal

Відповіді:


156

Якщо вам потрібні інші машини у вашій фізичній мережі, щоб мати змогу дістатись до вашої віртуальної мережі (або якщо віртуальний комп'ютер потребує доступу до Інтернету), використовуйте мостові мережі. Інакше дотримуйтесь лише мережевих мереж.

  1. Зупиніть свій VM і відкрийте його налаштування в диспетчері VirtualBox (OSE)
  2. Перейдіть на вкладку Мережа
  3. Виберіть мережевий режим на ваш вибір (мостова мережа або лише хост) (у наведеному нижче прикладі я використовую лише хост)

    Якщо ви хочете використовувати мостові мережі, вам слід вибрати правильний мережевий адаптер під ім'ям . Для дротових з'єднань ви вибрали б щось на зразок eth0. Бездротові з'єднання зазвичай називають wlan0(цифри можуть відрізнятися)

  4. Збережіть налаштування
  5. Запустіть Ubuntu VM
  6. Після закінчення роботи можна зібрати IP-адресу, запустивши:

    ifconfig | grep addr
    

    Нижче 192.168.56.101наводиться IP-адреса, яка може бути використана у вашій хост-системі Win7 для доступу до вашої віртуальної машини:

    eth0  Link encap:Ethernet  HWaddr 08:00:27:70:27:fe  
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe7b:25fe/64 Scope:Link
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
    
  7. У вашій хост-системі Windows відредагуйте C:\Windows\System32\drivers\etc\hostsяк адміністратор та додайте рядок:

    192.168.56.101   guestserver.com
    

    Якщо у вас є хост-система Ubuntu, редагуйте /etc/hostsза допомогоюsudo nano /etc/hosts

  8. Прибуток!

2
Це прекрасно спрацювало для мережевих мереж, і тепер я можу отримати доступ до гостя з веб-переглядача хоста. Однак при мостовому з'єднанні, яке я хотів би, я не маю доступу до Інтернету від гостя.
urok93

5
ipconfig - це не команда в Linux, це ifconfig. Ти це мав на увазі?
Макс

7
На вікнах 7/8 хост - файл знаходиться тут: C: \ Windows \ System32 \ Drivers \ Etc \ хостів
Дален

2
@begueradj Ці кроки вище стосуються мостових мереж, але деякі мережі не дозволяють / надають вам декілька адрес. У своєму універсалі я не міг використовувати мостові мережі через це, і в тих ситуаціях я використовував би NAT з переадресацією портів.
Лекенштейн

1
Включення двох мережевих адаптерів, одного NAT і мостового, дозволило мені бачити і бачити, як це бачили.
stenci

13

У моєму випадку у мене є маршрутизатор, який присвоює статичний IP-адресу моєму хост-ПК.

  1. Встановіть мережевий адаптер як міст:

    Установки> Мережа> Адаптер 1 ( Увімкнути мережевий адаптер )> Приєднано до: ( Мостовий адаптер )> ОК

  2. Запустіть віртуальну машину> увійдіть

  3. Змініть IP-адресу VirtualMachine з динамічного на статичний

    sudo nano / тощо / мережа / інтерфейси

  4. У розділі Первинний мережевий інтерфейс змініть слово dhcp на статичне та введіть новий статичний IP або прокоментуйте рядок та додайте новий

:

#iface eth0 inet dhcp
iface eth0 inet static
        address 192.168.10.110
        netmask 255.255.255.0
        gateway 192.168.10.1
        network 192.168.10.0
        broadcast 192.168.10.255

Зауважте, мій маршрутизатор працює на xxx.xxx. 10 .x, а ваш може бути на xxx.xxx. 0 .x або xxx.xxx. 1 .x або щось інше.

Після цього ви можете мати підключення до Інтернету як у хост-так і в гостьовій машині та ввести цей статичний IP-адресу у веб-браузері, щоб перевірити сервер apache.


Я забув сказати, що ви повинні переконатися, що ваше / etc / hostname правильно налаштовано таким чином: nameserver [your_isp_primary_dns] та nameserver [your_isp_secondary_dns]
Nuc134rB0t

8

Замість того, щоб намагатися встановити адаптери на мостовий або мережевий адаптер лише для хостів, ви можете спробувати переадресацію портів через брандмауер / інші порти, при цьому ваш порт не встановлений на з'єднання tcp та udp.


6

Прийнята відповідь не працювала для мене (я встановив virutalbox всередині ubuntu 12.04 LTSі всередині virtualbox я встановив ubuntu 14.04 LTS Server). Я просто поміняв мережеві параметри для Adapter1 і Adapter2, тобто налаштував Adapter1 для "мостової мережі" та Adapter2 для "NAT", і він почав працювати.


Це було корисно, але переключіть замовлення адаптера, щоб гість використовував NAT за замовчуванням та зможе підключитися до Інтернету.
MadeOfAir

Це насправді спрацювало для мене. Я намагаюся отримати доступ до Windows VM з Mac Host.
Бенджамінц

1
Після годин читання та спроб будь-якого іншого рішення, яке я міг знайти в Інтернеті, ця ваша ідея спрацювала як шарм. Дуже дякую, що написали це! Використання Ubuntu 18.04 в якості хоста та гостя.
Іван

5

Якщо вам потрібен лише певний порт (скажіть, якщо ви використовуєте веб-додаток, наприклад Jetty або Tomcat), просто зробіть:

Налаштування -> Мережа -> Встановіть один з адаптерів як NAT -> Натисніть "Переадресація порту" -> Встановіть відповідний порт хосту та гостя.

Після того як ви збережете, ви можете просто перейти з локальної машини до localhost: hostport, і він буде перенаправлений на відповідний порт віртуального вікна, і ви закінчите.


4

Якщо ви не можете підключитися через ip, ви, швидше за все, не матимете успіху з іменами dns при встановленні apache за умовчанням.

Перевірте мережеві настройки віртуального хоста, я завжди ставлю його до мосту, до нього можна отримати доступ по всій мережі.


Я встановив його мостиком, але тепер гість не підключається до Інтернету.
urok93

ви отримуєте IP в квест-операційній системі? Зазвичай я встановлюю кілька NIC, щоб відповідати всім фізичним NIC. Ви можете, можливо, скинути свою ifconfig з квесту та хоста
PvdL

Коли я працюю з бездротовим пристроєм, він працює, але з кабелем немає, ось декілька скріншотів, на яких відображається моя конфігурація: imageshack.us/photo/my-images/832/guestr.png imageshack.us/photo/my-images/846/virtualbox .png imageshack.us/photo/my-images/9/hostwin7.png
urok93

будь-яка допомога з цього приводу?
urok93

схоже, що ваш комп'ютер безпосередньо підключений до Інтернету, і це може бути причиною, через яку ваш клієнт не отримує IP (v4)
PvdL

3

У мостовому режимі, якщо ваш хост використовує статичну IP-адресу, вам слід вручну налаштувати ваш гостьовий IP в одному діапазоні з IP-адресом хоста. В іншому випадку гостя не буде автоматично виділено з дійсною IP-адресою. HTH.


2

Відповідь Лекенштейна правильна. Але якщо ви перебуваєте у корпоративному середовищі, можливо, вам доведеться вимкнути проксі-сервер для IP-адреси вашого гостя. Наприклад, якщо ви використовуєте Mozilla Firefox на своєму хост-машині і ви намагаєтесь отримати доступ до 192.168.56.101/ у гості, вам потрібно перейти до Інструментів Firefox-> Параметри-> Додатково-> Мережа-> Налаштування та скористатися "Ні Проксі "або" Немає проксі для -> 192.168.56.101 ".


2

Якщо вам потрібно отримати доступ до гостя, який отримує інший IP через використання DHCP, пропоную отримати доступ через його ім'я хоста. Однак для доступу через ім’я хоста, коли хостом є Windows, може знадобитися додатковий інструмент.

Наступний текст був скопійований з моєї власної відповіді на superuser.com. :

Я пропоную вам скористатися Multicast DNS, щоб виправити це.

Ubuntu використовує це за замовчуванням через Avahi .

Хосту Windows потрібен клієнт Avahi для того, щоб виявити інші Avahi-сервіси. Якщо ваш хост вже використовує якесь програмне забезпечення Apple, це, ймовірно, вже є через сервіс під назвою Bonjour. Однак якщо це ще не встановлено, невелику версію Bonjour можна завантажити тут: Bonjour Print Services . Після встановлення ви повинні мати доступ до свого гостя через .local.

Примітка: Схоже, система mDNS за замовчуванням використовує постфікс .local. Отже, якщо ваше ім’я хоста "dev.myapp.com", фактичне ім'я хоста буде "dev.myapp.com.local".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.