クライアントの設定のみを使用してクライアントに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デバイスをローカルネットワークアダプタの上にバインド順に配置する必要があります
ipconfig
の出力を見て、VPNデバイスを特定します。私の場合は「ローカルエリア接続 2」でした。このアダプタのIPアドレスを覚えておいてください- regedit.exe を開き、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
の下にあるキーが VPN アダプタの IP アドレスに一致することを確認してください。このアダプタの GUID を覚えておいてください 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