Я точно та же проблема, и видел его до разрешения, так что я рад объяснить проблему и решение в деталях.
без участия VPN
важно понимать конфигурацию, которая необходима для того, чтобы соответствовать вашим требованиям без с участием VPN. Кроме того, эта информация предполагает, что брандмауэр мешает, ни на хозяина, ни гостя.
без VPN, это обычно решается путем создания двух сетевых адаптеров в конфигурации виртуальной машины.
первый адаптер должен быть установлен в NAT
режим, который позволяет гостям получить доступ к сетевым ресурсам (включая Интернет) через сетевой интерфейс хоста.
второй адаптер должен быть установлен в Host-only
, которое включает двухнаправленное сообщение между хозяином и гостем.
этот адаптер немного сложнее настроить, чем первый, потому что он требует изменения глобальных сетевых настроек VirtualBox для настройки адаптера только для хоста (примечание: для этого требуются права администратора).
в VirtualBox перейдите к File -> Preferences -> Network
. Нажмите кнопку Host-only Networks
tab и нажмите маленький +
значок для добавления нового адаптера. Вам будет предложено повысить разрешения VirtualBox.
заполнение тега Adapter
tab является обязательным; он должен выглядеть что-то вроде этого (игнорируйте адаптер с надписью #2
; это используется для чего-то несвязанного):
значения DHCP
вкладка сервер необязательны. Если вы собираетесь жестко IP-адрес для этого адаптера в сетевых настройках клиента, то эти значения не нужны. Если, с другой стороны, вы собираетесь использовать DHCP, значения могут выглядеть примерно так это:
последний шаг в отношении настройки VirtualBox-вернуться в сетевую конфигурацию виртуальной машины и добавить второй адаптер, который ссылается на только что созданный адаптер хоста:
теперь в гостевой операционной системе сеть должна быть настроена на использование этих двух сетевых интерфейсов.
на Debian или Ubuntu GNU / Linux, конфигурация так же проста, как изменение /etc/network/interfaces
выглядит так:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
# The secondary network interface
auto eth1
iface eth1 inet static
address 192.168.56.101
netmask 255.255.255.0
(пурист может предпочесть использовать /etc/network/interfaces.d
каталог вместо этого, но это выходит за рамки этого объяснения)
перезапустите сетевые службы гостя, или проще говоря, перезагрузите всю гостевую виртуальную машину, и все должно "просто работать".
на этом этапе необходимо проверить связь с гостевой виртуальной машиной по адресу 192.168.56.101
и получите ответ (при условии, программное обеспечение межсетевой экран не вмешивается).
аналогично, можно пинговать хост в 10.0.2.2
. Этот IP-адрес, по-видимому," жестко закодирован " в реализации Nat VirtualBox, или, по крайней мере, указан с помощью какой-то неочевидной директивы конфигурации, и существует мало информации о его происхождении. Но, увы, "это просто работает".
учитывая эту конфигурацию, все три условия, изложенные в вашем вопросе, выполнены.
Enter: VPN
но вот в чем загвоздка. Введение VPN вызывает проблему остановки показа (хорошо, в зависимости от определенного VPN и его конфигурации).
современные VPN способны Раздельное Туннелирование, который необходим для вышеупомянутой конфигурации VirtualBox, чтобы функционировать в соответствии с вашими тремя требованиями. По (хорошим) причинам безопасности раздельное туннелирование часто отключается, и это именно проблема в вашем (и моем) случае.
когда вы подключиться к VPN, VPN-клиент (компания Cisco AnyConnect Безопасный клиент подвижности, 3.1.02026, в моем случае) рассматривает главного компьютера таблицы маршрутизации, запоминает их, и потом прокладывает-за их значения, которые обычно поступают от некоторых централизованной месте (т. е. даже с локального администратора, невозможно переопределить параметры).
вы можете изучить таблицы маршрутизации для себя, открыв command.exe
(в Windows):
C:\>route print
перед подключением к VPN таблица маршрутизации содержит важные записи, которые позволяют этой конфигурации VirtualBox функционировать правильно. Соединение с VPN заставляет эти записи быть удаленными, который предотвращает связь между хостом и гостем.
(есть много других записей, которые я опустил здесь, поскольку они не имеют отношения к основной причине такого поведения.)
перед подключением к VPN:
192.168.56.0 255.255.255.0 On-link 192.168.56.1 266
192.168.56.1 255.255.255.255 On-link 192.168.56.1 266
192.168.56.255 255.255.255.255 On-link 192.168.56.1 266
224.0.0.0 240.0.0.0 On-link 192.168.56.1 266
255.255.255.255 255.255.255.255 On-link 192.168.56.1 266
после подключения к VPN:
192.168.56.1 255.255.255.255 On-link 192.168.56.1 266
224.0.0.0 240.0.0.0 On-link 192.168.56.1 266
255.255.255.255 255.255.255.255 On-link 192.168.56.1 266
клиент VPN удаляет следующие строки:
192.168.56.0 255.255.255.0 On-link 192.168.56.1 266
192.168.56.255 255.255.255.255 On-link 192.168.56.1 266
без этих последних двух записей хост и гость не могут взаимодействовать, и это именно то поведение, когда раздельное туннелирование отключено в конфигурации VPN.
обычно эти две команды восстанавливают эти маршруты:
C:\>route ADD 192.168.56.0 MASK 255.255.255.0 192.168.56.1 METRIC 266
C:\>route ADD 192.168.56.255 MASK 255.255.255.255 192.168.56.1 METRIC 266
но VPN-клиент остается бдительным: он перехватывает попытки изменить таблицу маршрутизации. Мой клиент кажется разрешите вторую запись, но не первую. (И это может проложить как на какой-то периодической основе; я не проверял это.)
если ваша конкретная VPN и его конфигурация помощника позволяют включить раздельное туннелирование, обычно оно включается следующим образом:
при отключении от VPN корректно работающие VPN-клиенты будут восстанавливать таблицы маршрутизации, которые были на месте до соединительный. Кажется, что мой VPN-клиент делает это надежно, что выгодно, поскольку это означает, что гостевую виртуальную машину не нужно перезапускать при подключении к VPN или отключении от нее. В таких случаях дополнительный адаптер виртуальной машины сбрасывается, но он повторно получает свой IP-адрес автоматически и прозрачно, восстанавливая связь между узлом и гостем почти сразу. Еще лучше, монтирования NFS между хостом и гостем (я использую монтирования CIFS) остаются подключенными через VPN connect / disconnect оперативный.
в маловероятном случае, если ваш VPN позволяет раздельное туннелирование, это может быть простой вопрос включения его, и в этом случае, я хотел бы услышать от вас, является ли или нет "все просто работает".