У меня есть гостевая система Oracle Linux, на которой установлен веб-сервер в VirtualBox на хосте Windows 7. Мне нужно настроить сеть так, чтобы я мог делать 3 вещи:
- хост может подключиться к гостю через браузер и ssh
- гость может общаться с другими серверами во внутренней сети через VPN хоста
- гость может выйти на внешний интернет
Я прочитал несколько ответов и попробовал несколько конфигураций, и вот что происходит:
Мостовой
- хозяин не может связаться с гостем
- гость не может видеть через VPN
- гость может выйти в интернет
NAT
- хозяин не может связаться с гостем
- Гость может видеть через VPN
- гость не может выйти в интернет
Внутрикомпьютерная
все 3 условия не выполняются.
NAT-сети
- хозяин не может связаться с гостем
- Гость может видеть через VPN
- гость не может выйти в интернет
Следует также отметить, что иногда хост подключается через VPN, а иногда просто подключается напрямую к корпоративной сети. Когда он подключен напрямую, мостовой адаптер удовлетворяет всем 3 условиям. В идеале должна быть конфигурация, которая удовлетворяет всем 3 условиям, независимо от того, есть ли VPN или прямое соединение.
networking
virtualbox
vpn
Ewok
источник
источник
Ответы:
У меня была точно такая же проблема, и я дошел до ее разрешения, поэтому я с удовольствием объясню проблему и ее решение в деталях.
Без привлечения VPN
Важно понимать конфигурацию, которая требуется для удовлетворения ваших требований без использования VPN. Кроме того, эта информация предполагает, что ни один программный брандмауэр не мешает ни на хосте, ни на госте.
Без VPN это обычно решается путем создания двух сетевых адаптеров в конфигурации виртуальной машины.
Первый адаптер должен быть установлен в
NAT
режим, который позволяет гостю получать доступ к сетевым ресурсам (включая Интернет) через сетевой интерфейс хоста.Второй адаптер должен быть установлен на
Host-only
, что позволяет двунаправленную связь между хостом и гостем.Этот адаптер немного сложнее в настройке, чем первый, поскольку он требует изменения глобальных сетевых настроек VirtualBox для настройки адаптера только для хоста (примечание: для этого требуются права администратора).
В VirtualBox перейдите на
File -> Preferences -> Network
. Нажмите наHost-only Networks
вкладку и нажмите маленький+
значок, чтобы добавить новый адаптер. Вам будет предложено повысить разрешения VirtualBox.Заполнение
Adapter
вкладки обязательно; это должно выглядеть примерно так (игнорируйте адаптер с надписью#2
; он используется для чего-то не связанного):Значения на
DHCP
вкладке сервера являются необязательными. Если вы собираетесь жестко закодировать IP-адрес для этого адаптера в конфигурации сети гостя, тогда эти значения не нужны. Если, с другой стороны, вы собираетесь использовать DHCP, значения могут выглядеть примерно так:Последний шаг в настройке VirtualBox - вернуться к сетевой конфигурации виртуальной машины и добавить второй адаптер, который ссылается на только что созданный адаптер хоста:
Теперь в гостевой операционной системе сеть должна быть настроена на использование этих двух сетевых интерфейсов.
В Debian или Ubuntu GNU / Linux конфигурация так же проста, как изменение,
/etc/network/interfaces
чтобы выглядеть так:(пурист может предпочесть использовать
/etc/network/interfaces.d
каталог вместо этого, но это выходит за рамки этого объяснения)Перезапустите гостевые сетевые службы или, проще говоря, перезапустите всю гостевую виртуальную машину, и все должно «просто работать».
На этом этапе необходимо иметь возможность пинговать гостевую виртуальную машину
192.168.56.101
и получать ответ (при условии, что программный брандмауэр не вмешивается).Аналогично, нужно иметь возможность пинговать хост на
10.0.2.2
. Этот IP-адрес, по-видимому, «жестко запрограммирован» в реализации NAT VirtualBox или, по крайней мере, указан в какой-то неочевидной директиве конфигурации, и информации о его происхождении мало. Но, увы, «это просто работает».Учитывая эту конфигурацию, все три условия, изложенные в вашем вопросе, выполнены.
Введите: VPN
Но вот в чем дело. Введение VPN вызывает проблему остановки показа (ну, в зависимости от конкретной VPN и ее конфигурации).
Современные VPN способны к разделенному туннелированию , которое требуется для работы вышеупомянутой конфигурации VirtualBox в соответствии с вашими тремя требованиями. По (хорошим) причинам безопасности разделенное туннелирование часто отключается, и это как раз проблема в вашем случае (и моем).
Когда вы подключаетесь к VPN, VPN-клиент (в моем случае Cisco AnyConnect Secure Mobility Client, 3.1.02026) проверяет таблицы маршрутизации хост-компьютера, запоминает их, а затем передает их значениям, которые обычно поступают из некоторого централизованно- управляемое местоположение (т. е. даже с правами локального администратора невозможно изменить настройки).
Вы можете самостоятельно проверить таблицы маршрутизации, открыв
command.exe
(в Windows):Перед подключением к VPN таблица маршрутизации содержит важные записи, которые позволяют этой конфигурации VirtualBox работать правильно. Подключение к VPN приводит к удалению этих записей, что предотвращает связь между хостом и гостем.
(Есть много других записей, которые я здесь пропустил, так как они не имеют отношения к основной причине такого поведения.)
Перед подключением к VPN:
После подключения к VPN:
VPN-клиент удаляет следующие строки:
Без этих двух последних записей хост и гость не могут обмениваться данными, и это именно то, что предполагается, когда раздельное туннелирование отключено в конфигурации VPN.
Обычно эти две команды восстанавливают эти маршруты:
Но VPN-клиент остается бдительным: он перехватывает попытки изменить таблицу маршрутизации. Кажется, мой клиент разрешает вторую запись, но не первую. (И это может периодически отменять оба варианта; я не проверял это.)
Если ваша конкретная VPN и ее сопутствующая конфигурация позволяют включить раздельное туннелирование, оно обычно включается следующим образом:
После отключения от VPN клиенты VPN с хорошим поведением восстановят таблицы маршрутизации, которые были до подключения. Мой VPN-клиент, кажется, делает это надежно, что полезно, поскольку это означает, что гостевую виртуальную машину не нужно перезапускать, когда я подключаюсь или отключаюсь от VPN. В таких случаях вторичный адаптер виртуальной машины сбрасывается, но он автоматически и прозрачно повторно получает свой IP-адрес, почти немедленно восстанавливая связь между хостом и гостем. Более того, NFS-монтирования между хостом и гостем (я использую CIFS-монтирования) остаются подключенными при операциях подключения / отключения VPN.
В том маловероятном случае, если ваш VPN разрешает раздельное туннелирование, может быть достаточно просто включить его, и в этом случае я хотел бы услышать от вас, будет ли «все просто работает».
источник
Как я использую мой Windows хост vpn в гостевой машине Linux мяты
Установите мой VPN для использования фиксированных номеров портов в настройках
Установите сеть VM на NAT
Установите настройки прокси-сервера linux на ip 10.0.2.2 (NAT-шлюз виртуальной коробки по умолчанию) и порты, которые я ввел вручную в свой vpn
источник