2

Virtualbox становится недоступным для входящих подключений от хост-системы, когда VPN включен. Соответственно, я не могу использовать клиентов http/ssh/rdp для доступа к гостевой ОС с хост-ОС, пока Pulse Secure VPN остается подключенным.

Хост ОС: OSX High Sierra. Насколько я понимаю, VPN-клиент не должен перегружать маршруты в частном адресном пространстве IPv4. Любые обходные пути для решения этой проблемы?

1 ответ1

2

В итоге я создаю скрипт для запуска моей виртуальной машины. Ограничение заключается в том, что вам нужно запускать виртуальную машину, когда VPN отключена, потому что Pulse Secure блокирует создание необходимых маршрутов.

Я сделал этот скрипт закрепленной командой для удобства -

#!/bin/bash

# visudo as root, add your_username ALL = (ALL) NOPASSWD:ALL

# vboxmanage list vms

guestip="192.168.86.3"
guestmac="8:0:27:22:4c:27"
vmname="WIN_ENT_10_64B"

# if the VM is running, leave it alone in peace:
vboxmanage showvminfo $vmname |grep "running (since"
[ "$?" -eq "0" ] && exit

# hide terminal window:
osascript -e 'tell application "Finder" to set visible of process "Terminal" to false'

# shutdown vbox network:
while [ -n "`netstat -rnf inet |grep $guestip`" ]; do
  sudo ifconfig vboxnet0 down
  sleep 1
done

# start VM and wait:
vboxmanage startvm $vmname --type separate
while [ -z "`netstat -rnf inet |grep $guestip`" ]; do
  sleep 1
done

# delete original route:
sudo route -n delete ${guestip%.*}.0

# create a network singularity in routing table:
sudo route -n add $guestip/32 -interface vboxnet0

# create the host on the network:
sudo arp -s $guestip $guestmac

osascript -e 'tell application "Terminal" to quit' &

В сценариях предполагается, что вы можете использовать sudo без пароля.

guestip настраивается вручную в гостевой ОС на "интерфейсе только для хоста" (обычно № 2). Когда вы создаете "сетевой адаптер только для хоста" в VirtualBox, по умолчанию включен DHCP. Я отключаю DHCP и назначаю статический IP-адрес в гостевой ОС вручную из соображений согласованности (здесь - 192.168.86.3, маска сети 255.255.255.0 или CIDR /24, DNS оставлен пустым).

guestmac - это MAC-адрес сетевого интерфейса в гостевой ОС, который имеет IP 192.168.86.3. Не путайте его с MAC-адресом "сетевого адаптера только для хоста" в конфигурации VirtualBox. Последний настроен на 192.168.86.1/24 в нашем случае (MAC a:0:27:0:0:0 ниже).

После завершения сценария (приложение терминала исчезает из дока), ожидаемый вывод netstat -rnf inet должен содержать аналогичные записи:

192.168.86.3       8:0:27:22:4c:27    UHLS            3     4884 vboxnet
192.168.86.3/32    a:0:27:0:0:0       ULSc            0        0 vboxnet

Эти записи будут сохраняться при подключении / отключении VPN и позволят вам получить доступ к вашей виртуальной машине локально, независимо от состояния VPN.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .