windows – OpenVPN クライアント設定ファイルを使って DNS サーバーを設定する

networking openvpn vpn windows

クライアントの設定のみを使用してクライアントにDNSサーバを設定するにはどうすればよいですか?私のクライアントはWindowsマシンですが、クライアントが接続したときにDNSサーバを変更し、VPNから切断したときに元の設定に戻したいのですが、どのようにすればいいですか?

これまでに見つけた情報では、サーバの設定を使ってクライアントに DNS の設定をプッシュするというものでしたが、この場合はサーバの設定を変更することができず、現在は VPN に接続するたびに手動で設定を行っています。接続中にローカルマシンのDNSサーバを設定するためのopenvpn設定オプションがあるといいですね

  19  Fahad Yousuf  2013-08-28


ベストアンサー

以下のようなバッチスクリプトを使用して、これを行うことができます。これは、自宅のDNSサーバが1.1.1.1.1と2.2.2.2で、VPNのDNSサーバが8.8.8.8.8.9.9.9であると仮定しています

vpn-connect.bat:

netsh interface ip set dns "Local Area Connection" static 8.8.8.8

netsh interface ip add dns "Local Area Connection" 9.9.9.9

vpn-disconnect.bat

netsh interface ip set dns "Local Area Connection" static 1.1.1.1

netsh interface ip add dns "Local Area Connection" 2.2.2.2

これらのスクリプトに接続と切断の方法を含めるつもりでしたが、OpenVPN にはコマンドライン経由で切断するオプションがありません。接続を自動化したいのであれば、これでうまくいくはずです

C:\Program Files\bin\openvpn.exe C:\Program Files\conf\client.ovpn

5  Andrew White  2013-08-28


クライアント設定ファイルに以下のように追加することができます

dhcp-option DNS <dns_server_ip_address>

サーバー側では

push "dhcp-option DNS <dns_server_ip_address>"

両側にdhcp-optionを使っているようです。routeでも同じことができます

15  brunoqc  2014-10-06


どうやら、少なくとも Windows 2000/XP/7 を含む Windows のバインド順序の誤りに問題があるようです。これにより、Windows OpenVPN クライアントは VPN アダプタの設定ではなく、デフォルトのネットワークアダプタの DNS 設定を使用するようになります

これを修正するには、VPN TUNまたはTAPデバイスをローカルネットワークアダプタの上にバインド順に配置する必要があります

  1. ipconfigの出力を見て、VPNデバイスを特定します。私の場合は「ローカルエリア接続 2」でした。このアダプタのIPアドレスを覚えておいてください
  2. regedit.exe を開き、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces の下にあるキーが VPN アダプタの IP アドレスに一致することを確認してください。このアダプタの GUID を覚えておいてください
  3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Linkageに移動し、Bindをダブルクリックします。すると、アダプタのGUIDのリストが表示されます。VPN デバイスの GUID に対応する行をリストの一番上に切り取って貼り付け、リストを保存します

これにより、VPNデバイスのDNSエントリが使用されるようになります(しかもVPN接続がアクティブな間のみ)。これらは @brunoqc さんの回答にしたがって設定することができます。今のうちに、DNSクエリが漏れないようにするために、openvpnオプションblock-outside-dnsも追加しておいたほうがいいでしょう

この答えはthis very useful blog postに基づいています

9  jtbr  2017-04-03


下の2つのどちらかに加えて

dhcp-option DNS <dns_server_ip_address>          (add to client config)

or

push "dhcp-option DNS <dns_server_ip_address>"   (add to server config)

Windowsが設定したDNSを使用するように強制するために、これらをクライアント設定にも追加します

register-dns
block-outside-dns

1つ目は、WindowsがDHCPから受信した他のどのDNSサーバーよりも、設定されたDNSサーバーを優先するように強制します。2つ目は、設定されたDNSサーバー以外のDNSサーバーへのDNSの漏洩を防ぎます

6  Duke Nukem  2019-07-17


タイトルとURLをコピーしました