openvpnでDNSサーバーを定義する方法は?


17

静的キーを使用してopenvpnサーバーをセットアップします(国家ゲートウェイでのDPIにより証明書モードは使用できません)が、接続後にDNSを自動的に正常に変更できません。インターネットとSEで検索しましたが、誰もが使用を提案していますdhcp-option

この行を追加しようとしました client.ovpn

dhcp-option DNS 8.8.8.8

効果はありません。サーバーconfにこの行を追加しようとしました

push "dhcp-option DNS 8.8.8.8"

どちらも効果がありません。

実際、マニュアルによると、

--dhcp-option type [parm]

拡張TAP-Win32 TCP / IPプロパティを設定します。--ip-win32 dynamicまたは--ip-win32 Adaptiveとともに使用する必要があります。

しかし、私のクライアントはMacマシン、サーバーLinuxです。問題の解決策はありますか?


1
OSXマシンで使用しているクライアントに言及する必要があります。
FloHimself

2
@FloHimself:標準のコマンドラインユーティリティopenvpn
思源レン

回答:


7

Linuxシステムでは、外部スクリプトを実行する必要があります

ドキュメントは次のとおりです。https : //wiki.archlinux.org/index.php/OpenVPN#DNS

スクリプトは上で発見され、ここ以降、Linuxのバージョンここで、あなたはOpenVPNのクライアント構成でこれを追加することによって、それらを呼び出すことができます。

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

1
LinuxフレーバーがNetworkManagerを使用している場合は、で動作するように変更をnmcli確認してください。
palswim

5

私は専門家ではありませんがman、引用の下のページを読むことから:

--dhcp-option type [parm]

...

--dhcp-optionが--pushを介して非Windowsクライアントプッシュされる場合、オプションはupスクリプトが呼び出される前に「foreign_option_ {n}」という名前でクライアントの環境に保存されることに注意してください。

そしてforeign_option_ {n}の下で:

foreign_option_ {n}

非Windowsシステムの--dhcp-optionなど、ネイティブにサポートしていないクライアントに--pushを介してプッシュされたオプションは、-- upスクリプトの実行この環境変数シーケンスに記録されます 。

したがって、コマンドラインopenvpnクライアントは、接続の確立後にOSXマシンのDNS設定を自動的に変更しません。ただし、DNSオプションはクライアントの環境に保存されるため、次のオプションを使用して、プッシュされたサーバーをシステムの現在のDNS構成に追加するスクリプトを指定できます--up

--up cmd

TUN / TAPデバイスが正常に開いた後にコマンドcmdを実行します(--user UIDの変更前)。

cmdは、スクリプト(または実行可能プログラム)へのパスで構成され、オプションで引数が続きます。パスと引数は、単一引用符または二重引用符で囲むか、バックスラッシュを使用してエスケープすることができ、1つ以上のスペースで区切る必要があります。

たとえば、Tunnelblickはこのスクリプトを利用してこれを行います

別の解決策は、OS Xクライアント用のDNSの openvpnメーリングリストに投稿されたスクリプトである可能性があります-決定版ガイド


iPhoneはどうですか?ジェイルブレイクがなければ、bashやDNSを自動的に変更するコマンドがないと思います。
思源レン

あなたはおそらく、iPhone上でクライアントOpenVPNのコマンドラインを使用していないjailbrakingなし@SiyuanRen ...
FloHimself

公式のopenvpnアプリは、単純にテキスト設定ファイルをロードして実行します。これ以上の機能はありません。
Siyuanレン

@SiyuanRenまあ、公式のopenvpnアプリはここで説明されているコマンドラインアプリケーションではありません。
FloHimself

これはハックのように感じます。PPTPまたはL2TPで接続する場合、ネットワーク設定で使用可能な専用インターフェイスがあり、IPとDNSのみがあります。OpenVPNでは、他のインターフェイスのDNS設定を変更する必要がありますか?
Siyuanレン

4

Linux OS(サーバーとクライアント)の両方で同じ問題が発生し、サーバーにdnsmasqがインストールされていないことを解決しました

だから私のステップ:

apt-get install dnsmasq

server.confで

push "redirect-gateway def1" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4"

また、サーバーIPを介してドメインを接続および参照し、DNSが自動に設定されたNetWorkManagerに接続できます。


-1

このコマンドをクライアント側のconfファイルに追加します。

# put actual dns name here
dhcp-option DNS 10.11.12.13 

それは間違いなく動作します。

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