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


16

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

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

回答:


3

これを行うには、次のようなバッチスクリプトを使用できます。ホームDNSサーバーが1.1.1.1および2.2.2.2であり、VPN DNSサーバーが8.8.8.8 9.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


15

クライアント構成ファイルに次を追加できます。

dhcp-option DNS <dns_server_ip_address>

サーバー側では次のようになります。

push "dhcp-option DNS <dns_server_ip_address>"

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


4
うまくいくように思えますが、これはうまくいきませんでした。このオプションは、生成されたclient.ovpnにはありませんでした。追加してもまだ機能しません。在庫ファームウェア3.0.0.4.376_3861でのAsus RT-N66Uからの実行
シェイ・

2
<ca>タグの直前にこれを.ovpnファイルに追加しましたが、見事に機能しました!ありがとうございました!私はOpenVPNの2.4.4のWindowsのバージョン6.2で私のWindowsマシン上でこれをテストした
マイケルKargl

6

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

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

  1. からの出力を見て、VPNデバイスを特定しますipconfig。私にとっては、これは「ローカルエリア接続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の回答に従って設定できます。block-outside-dnsDNSクエリがリークしないように、おそらくopenvpnオプションも追加する必要があります。

この回答は、この非常に役立つブログ投稿に基づいています。


それはかなりうまくいきました!このガイドを書いてくれてありがとう
-SeriousM

3

以下の2つのいずれかに加えて:

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

または

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

これらをクライアント構成にも追加して、構成されたDNSをWindowsに強制的に使用させます。

register-dns
block-outside-dns

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.