VPN接続でDNSサーバーを静的に割り当てる以外に、これを防ぐ方法はないと思います。
DNSサーバーが照会される順序を変更するには、https://superuser.com/a/314379/120267のようにインターフェイスバインディングの順序を変更できるはずですが、VPN接続には影響しないようです。 Windows 7での個人的なテスト。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Linkage\Bind
インターフェイスのバインド順序の設定に関係なく、VPN接続が常にリストの一番上に追加されることを確認しました。
ただし、VPN接続の確立後にDNSの変更をリセットできます。
情報収集
コマンドプロンプト(Start
-> Run...
-> cmd
)を開き、を実行しnetsh interface ipv4 show dnsservers
ます。次のような出力が表示されます。
Configuration for interface "My VPN"
Statically Configured DNS Servers: 11.22.33.44
55.66.77.88
...
Configuration for interface "Local Network Connection"
DNS servers configured through DHCP: 192.168.0.1
192.168.0.2
...
あなたは必要なインターフェース名 VPNのため、必要に応じて自分の非VPN接続の最初のDNSサーバーを。この例では、それらはそれぞれMy VPNと192.168.0.1です。
すべてを設定する
オプション1:VPN DNSを無効にする
VPNのDNSサーバーがまったく必要ない場合は、コマンドプロンプトで次のコマンドを実行するだけです。
netsh interface ipv4 delete dnsservers name="<Interface Name>" address=all validate=no
Eg: netsh interface ipv4 delete dnsservers name="My VPN" address=all validate=no
netsh interface ipv4 show dnsservers
再度実行すると、VPNに関連付けられたDNSサーバーが削除されていることがわかります。非VPN接続のDNSサーバーがホスト名の解決に使用されます。
オプション2:VPN DNSを補足する
VPNのDNSサーバーでイントラネットのホスト名を解決する必要がある場合は、コマンドプロンプトで次のコマンドを実行できます。
netsh interface ipv4 add dnsservers name="<Interface Name>" address=<Non-VPN DNS server> index=1 validate=no
Eg: netsh interface ipv4 add dnsservers name="My VPN" address=192.168.0.1 index=1 validate=no
この場合、netsh interface ipv4 show dnsservers
は、VPN以外の接続の最初のDNSサーバーがVPNのDNSサーバーのリストの一番上に追加されたことを示します。最初にホスト名を解決するために使用され、失敗した場合は、VPNの通常のDNSサーバーの使用にフォールバックします。