静的キーを使用してopenvpnサーバーをセットアップしましたが(国のゲートウェイでDPIが原因で証明書モードは使用できません)、接続後にDNSを自動的に変更できません。私はインターネットとSEで検索しましたが、誰もがdhcp-option
の使用を提案しています。
この行をclient.ovpn
に追加しようとしました
dhcp-option DNS 8.8.8.8
影響はありません。この行をサーバーの設定に追加しようとしました
Push "dhcp-option DNS 8.8.8.8"
どちらも効果がありません。
実際、マニュアルによると、
--dhcp-option type [parm]
拡張TAP-Win32 TCP/IPプロパティを設定します。動的な--ip-win32または--ip-win32と一緒に使用する必要があります。
しかし、私のクライアントはMacマシン、サーバーLinuxです。問題の解決策はありますか?
Linuxシステムでは、外部スクリプトを実行する必要がありますです。
ここにドキュメントがあります: https://wiki.archlinux.org/index.php/OpenVPN#DNS
スクリプトは here または新しいLinuxバージョン here にあり、openvpnクライアント構成にこれを追加することでスクリプトを呼び出すことができます。
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
私は専門家ではありませんが、見積もりの下のman
ページを読んでください。
--dhcp-option type [parm]
...
-dhcp-optionが--Pushを介して非Windowsクライアントにプッシュされた場合の場合、オプションはupスクリプトが呼び出される前に「foreign_option_ {」という名前でクライアントの環境に保存されます。 n} "。
foreign_option_ {n}の下:
foreign_option_ {n}
-Windows以外のシステムのdhcp-optionなど、-Pushを介してクライアントにネイティブでサポートされていないオプションがプッシュされると、この環境変数シーケンスに事前に記録されますスクリプト実行のアップへ。
したがって、コマンドラインopenvpn
クライアントは、接続の確立後にOSXマシンのDNS設定を自動的に変更しません。ただし、DNSオプションはクライアントの環境に保存されるため、--up
オプションを使用して、システムの現在のDNS構成にプッシュされたサーバーを追加するスクリプトを指定できます。
--up cmd
TUN/TAPデバイスが正常に開いた後でコマンドcmdを実行します(--user UIDの変更前)。
cmdは、スクリプト(または実行可能プログラム)へのパスで構成され、オプションで引数が続きます。パスと引数は、単一引用符または二重引用符で囲んだり、バックスラッシュを使用してエスケープしたりすることができ、1つ以上のスペースで区切る必要があります。
例えば。 Tunnelblick もこれを利用してこれを行います script 。
別の解決策は OS XクライアントのDNS-決定的なガイド のopenvpnメーリングリストに投稿されたスクリプトである可能性があります。
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に接続することもできます。