静的キーでopenvpnサーバーを設定しましたが(国家ゲートウェイのDPIのために証明書モードが利用できない)、接続後にDNSを自動的に変更することはできません。インターネットとSEで検索したが、誰もがdhcp-option
。
この行を追加しようとしました。client.ovpn
dhcp-option DNS 8.8.8.8
効果はありません。サーバー構成にこの行を追加してみました。
push "dhcp-option DNS 8.8.8.8"
どちらも効果がありません。
実際の指示によると、
--dhcp-オプション-タイプ [パラメータ]
拡張TAP-Win32 TCP / IP属性を設定します。 --ip-win32 ダイナミックまたは --ip-win32 アダプティブで使用する必要があります。
しかし、私のクライアントはMacで、サーバーはLinuxです。解決策はありますか?
答え1
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
答え2
私は専門家ではありませんが、man
以下に引用したページを読んでみると次のようになります。
--dhcp-オプション-タイプ [パラメータ]
...
参考にしてください--dhcp-option --pushを介してWindows以外のクライアントにプッシュする、オプションは、upスクリプトを呼び出す前に、foreign_option_{n}という名前でクライアント環境に保存されます。
そして下海外オプション_{n}:
海外オプション_{n}
--pushを介してデフォルトでサポートされていないクライアントにプッシュするオプション(例:Windows以外のシステムの--dhcp-オプション、この環境変数の順序の前に記録されます。 --up スクリプトの実行。
したがって、コマンドラインopenvpn
クライアントは、接続が確立された後にOSXシステムのDNS設定を自動的に変更しません。ただし、DNSオプションはクライアント環境に保存されるため、次のオプションを使用して、システムの現在のDNS設定にプッシュされているサーバーを追加するスクリプトを指定できます--up
。
--トップコマンド
TUN / TAP装置を正常に開いた後(ユーザーUIDを変更する前)、cmdコマンドを発行してください。
cmdは、スクリプト(またはランチャー)へのパスとオプションで引数が続くパスで構成されます。パスと引数は、単一引用符または二重引用符で囲むか、バックスラッシュでエスケープでき、1つ以上のスペースで区切る必要があります。
例えばトンネルレンガまた、これを活用してこれを行うスクリプト。
別の解決策は、openvpnメーリングリストにスクリプトを公開することです。OS Xクライアント用DNS - 最終ガイド。
答え3
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を介してドメインに接続してナビゲートし、NetWorkManagerに接続してDNSを自動的に設定できます。
答え4
クライアントの conf ファイルにこのコマンドを追加します。
# put actual dns name here
dhcp-option DNS 10.11.12.13
必ず成功するでしょう...