Я в конечном итоге создание скрипта для запуска виртуальной машины. Ограничение состоит в том, что вы должны запустить VM, когда VPN выключен, потому что импульсный Безопасный блокирует создание требуемых маршрутов.
Я сделал этот скрипт закрепленной командой для удобства -
#!/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
настраивается вручную в гостевой ОС на "host only interface" (обычно #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 ниже.)
после завершения сценария (терминал приложение исчезает из dock), ожидаемый результат 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.