
Что я хочу:
Мне нужна гостевая виртуальная машина с Ubuntu (на VirtualBox) для различных тестовых серверов веб-разработки (работающих на разных портах, например, Grunt.js работает на порту 9000).
Я хочу протестировать веб-приложения, работающие на этих серверах: а) из гостевой ОС, б) из хостовой ОС (кстати, работающей под управлением Windows 7), в) с других устройств в той же сети, подключенных через WiFi (например, мобильные устройства).
Я хочу иметь возможность доступа в Интернет из гостевой системы.
Сначала я использовал решение, в котором у меня были настроены как NAT, так и адаптер Host-only в VirtualBox, что позволяло получать доступ к гостевой системе с хоста и выходить в Интернет из гостевой системы.
Теперь, когда я хочу, чтобы другие устройства могли получить доступ к виртуальной машине, это решение больше не работает. Я мог сделать это несколько лет назад с помощью сетевого адаптера с мостовым подключением, но, похоже, это не работает здесь, поскольку я нахожусь в корпоративной сети.
Что я сделал:
Поэтому я настроил сетевой адаптер с мостовыми настройками по умолчанию в VirtualBox. При запуске виртуальной машины я впервые увидел, чтоУ меня нет доступа в Интернет, и запуск ifconfig
дает:
eth0 Link encap:Ethernet HWaddr 08:00:27:d1:1f:98
inet6 addr: fe80::a00:27ff:fed1:1f98/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:139 errors:0 dropped:0 overruns:0 frame:0
TX packets:658 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:11274 (11.2 KB) TX bytes:140266 (140.2 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:1728 errors:0 dropped:0 overruns:0 frame:0
TX packets:1728 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1001564 (1.0 MB) TX bytes:1001564 (1.0 MB)
Как видите, ipv4 недоступен, и я не могу пинговать или запрашивать что-либо извне гостя. Я не совсем уверен, является ли это следствием неправильной настройки или же это следствием того, что корпоративная сеть не позволяет делать такие вещи — я также не получаю никакой помощи от ИТ-отдела...
РЕДАКТИРОВАТЬ:Я обнаружил, что мостовое соединение работает при использовании другой сети, а не корпоративной. Я также могу получить доступ к гостевому серверу с других устройств.
Как мне это еще отладить? И в чем может быть причина такого поведения?
решение1
К сожалению, я недостаточно хорошо знаком с IPv6, чтобы сказать, получает ли ваша виртуальная машина свой собственный IP или нет, поэтому я просто скажу, что мостовое соединение работает следующим образом: виртуальная машина запрашивает свой собственный IP, по сути, делая так, что ваша физическая машина имеет 2 IP в сети. Если в корпоративной сети отключен DHCP, как они чаще всего делают, или если они ограничили IP-адреса другим способом, вам придется заставить виртуальную машину ее собственный IP-адрес работать так, как вы хотите.
При этом можно настроить "переадресацию портов" для сетевого режима NAT в VirtualBox. Таким образом, когда ваша физическая машина получает запрос на указанный вами порт, ваша машина передает его вашей виртуальной машине.
Поскольку виртуальная машина подключена к частной сети, внутренней для VirtualBox и невидимой для хоста, сетевые службы на гостевой машине недоступны для хостовой машины или других компьютеров в той же сети. Однако, как и физический маршрутизатор, VirtualBox может сделать выбранные службы доступными для внешнего мира гостя с помощью переадресации портов. Это означает, что VirtualBox прослушивает определенные порты на хосте и пересылает все пакеты, которые поступают туда, на гостевую машину, на тот же или другой порт.
Если вы хотите узнать больше подробностей, то это из раздела "Network Address Translation (NAT)" в разделе "Virtual networking" в файле справки VirtualBox. Есть небольшой симпатичный графический интерфейс, который поможет вам с этим в расширенных сетевых настройках для вашей виртуальной машины.