Як отримати доступ до сервера Ubuntu, який працює у VirtualBox ззовні


44

Я встановив Ubuntu Server 12.04 LTS на свій ноутбук через VirtualBox. Я встановив LAMP, OpenSSH, поштовий сервер.

Коли я ввійшов, я побіг ifconfig. Це дало мені адресу inet як 192.168.0.3.

Отже, це повинна бути адреса, через яку я маю змогу отримати доступ до сервера правильно? Але я не в змозі отримати доступ до нього через браузер. Сервер постійно працює на VirtualBox - але все-таки його не працює в інших браузерах або на моєму мобільному телефоні. Що мені робити, щоб зробити його доступним для публіки?

Відповіді:


58

За замовчуванням гостьова машина у VirtualBox налаштована на використання так званої NAT мережі - IP мережевого адаптера гостя знаходиться у "віртуальній" підмережі, що включає гостя та батьківське додаток VirtualBox, яке виступає шлюзом. Для гостя, схоже, він отримує доступ до Інтернету через щось на зразок звичайного DSL-модему, але до нього не можна отримати доступ з будь-якого місця, як і ви не можете отримати доступ до машин у вашій локальній мережі з Інтернету, не спеціально налаштувавши свій модем, щоб дозволити таке доступ.

Документація VirtualBox має такий перелік режимів роботи в мережі:

Кожен з восьми мережевих адаптерів може бути окремо налаштований для роботи в одному з наступних режимів:

Не додається

У цьому режимі VirtualBox повідомляє гостю, що мережева карта присутня, але немає зв’язку - так, ніби до неї не підключено кабель Ethernet. Таким чином можна "підтягнути" віртуальний кабель Ethernet і перервати з’єднання, що може бути корисно повідомити гостьову операційну систему про відсутність підключення до мережі та застосувати реконфігурацію.

Переклад мережевих адрес (NAT)

Якщо ви хочете лише переглядати Інтернет, завантажувати файли та переглядати електронну пошту всередині гостя, то цей режим за замовчуванням повинен бути достатнім для вас, і ви можете спокійно пропустити решту цього розділу. Зверніть увагу, що при використанні спільного доступу до файлів Windows існують певні обмеження (детальну інформацію див. У розділі "NAT обмеження").

Мостові мережі

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

Внутрішня мережа

Це може бути використане для створення іншого типу програмної мережі, яка видима для вибраних віртуальних машин, але не для додатків, що працюють на хості або зовнішньому світі.

Мережі лише для господарів

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

Загальна мережа

Рідко використовувані режими поділяють один і той же загальний мережевий інтерфейс, дозволяючи користувачеві вибрати драйвер, який може бути включений до VirtualBox або розповсюджуватися в пакет розширень.

Якщо вам потрібно отримати доступ до свого гостя ззовні, вам потрібно налаштувати мостові мережі, які нададуть вашому гостю власний IP-адресу у вашій локальній мережі. Конфігурація проводиться в налаштуваннях VirtualBox, а не в гостьовій ОС.

Щоб мати змогу отримати доступ до сервера зі свого мобільного (тобто з-за меж вашої локальної мережі), після налаштування мережі вам додатково потрібно буде налаштувати переадресацію портів на вашому модемі DSL.


3
+1 для згадування конфігурації NAT за замовчуванням та пропонування мостів.
Марк Мікофський

+1 для того, щоб навчити мене чогось нового, корисного та відповідного моїй ситуації. Дякую!
heypaleblue

Дякуємо за відповідь, але чи не потрібно мені встановлювати DNS на моєму сервері, щоб зробити його доступним для інших через Інтернет?
Підборіддя

@Chins: Ні, вам точно не потрібно встановлювати DNS на вашому сервері. Все, що ми обговорювали до цього часу, взагалі не стосується DNS.
Сергій

1
@Sergey - я налаштував свій vm за допомогою мостового адаптера. Ip-адреса, що відображається при виконанні ifconfig, становить 10.210.xx, але я все ще не можу помістити свій vm з хост-машини. Що може бути не так?
Енді Дуфресне,

9

Щоб надати трохи більше інформації, це фактичні кроки, які потрібно зробити для налаштування мостової мережі:

Щоб увімкнути мостові мережі, все, що вам потрібно зробити, - це відкрити діалогове вікно «Налаштування» віртуальної машини, перейти на сторінку «Мережа» та у спадному списку для поля «Приєднано до» вибрати «Мостова мережа». Нарешті, виберіть потрібний хост-інтерфейс зі списку внизу сторінки, який містить фізичні мережеві інтерфейси ваших систем. Наприклад, для типового MacBook це дозволить вибрати між "en1: AirPort" (що є бездротовим інтерфейсом) та "en0: Ethernet", що представляє інтерфейс з мережевим кабелем.

Джерело

Потім я перезапустив віртуальну машину і зміг підключитися до неї зовні.


Майте на увазі, на Mac OS 10.1.11 , по крайней мере, наприклад, це не дозволило подолати адаптер Wi - Fi безпосередньо, але спочатку потрібно створити «міст» адаптера в настройках мережі
twicejr

1
але як такі речі, як статичні IP-адреси, працюють у мостовому режимі? Чи все тоді в одному зв’язку? Чи веб-сервер у віртуальній машині може бути в localhost замість якоїсь IP-адреси? Чи передаються порти 1: 1? Отже, якщо Tomcat перебуває у віртуальній машині в localhost: 8080 чи хост-машина просто набере localhost: 8080 у свій браузер, щоб побачити VM?
anon58192932
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.