VPNがオンの場合、VirtualboxはホストOSからの着信接続に使用できなくなります。したがって、Pulse Secure VPNが接続されている間は、http/ssh/rdpクライアントを使用してホストOSからゲストOSにアクセスすることはできません。
ホストOS:OSXHighSierra。私の理解では、VPNクライアントはプライベートIPv4アドレス空間のルートをプリエンプトしてはなりません。これを解決するための回避策はありますか?
最終的に、仮想マシンを起動するためのスクリプトを作成します。制限は、Pulse Secureが必要なルートの作成をブロックするため、VPNがオフのときにVMを起動する必要があることです。
便宜上、このスクリプトをドッキングコマンドにしました-
#!/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
は、ゲストOSの「ホストのみのインターフェイス」(通常は#2)で手動で構成されます。 VirtualBoxで「ホストオンリーネットワークアダプター」を作成すると、デフォルトでDHCPが有効になります。 DHCPを無効にし、一貫性の理由からゲストOSに静的IPを手動で割り当てます(ここでは、192.168.86.3、ネットマスク255.255.255.0またはCIDR/24、DNSは空白のままです)。
guestmac
は、IP192.168.86.3を持つゲストOSのネットワークインターフェイスのMACアドレスです。 VirtualBox構成の「ホストオンリーネットワークアダプター」のMACアドレスと混同しないでください。後者は、この場合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の状態に関係なくローカルでVMにアクセスできます。