VPN接続で新しいネームサーバーを自動的にフェッチする方法


11

私はubuntu xenial 16.04を実行しています

仮想プライベートクラウドへの接続にはopenvpnを使用しています。そのクラウドには独自のDNSサーバーがあります(ローカルルートと同様に、自宅またはオフィス)。

VPNに接続すると、そのネットワーク内のすべてのIPを使用できますが、ホスト名でアクセスできません。理由は簡単です。resolv.confファイルには、まだローカルオフィスのネームサーバーが表示されています。手動でresolv.confを上書きして、正しいネームサーバーを設定すると、問題はありません。

では、VPNへの接続時にresolv.confを自動的に再構成するにはどうすればよいですか?

システムイベントにフックしてスクリプトを実行できますか?


1
通常、VPNが独自のDNSサーバーをプッシュできるようにするオプションがあります。どのクライアントを使用していますか-tunnelblick?
Ryder

私は公式のopenvpnクライアントを使用しています。どこかで、VPNプロセスがDNSを更新できないと読みました。
クリスチャンボンジョルノ2016年

--register-dnsオプションを試しましたか?また、DHCP-オプションとして設定可能なクライアント側のオプション、(命令のフリップ側はここにありますopenvpn.net/index.php/open-source/documentation/howto.html#dhcp
ライダー

回答:


8

OpenVPNパッケージには、このためのスクリプトが含まれてい/etc/openvpn/update-resolv-confます。あなたはそれを設定する必要があります:

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

これdhcp-option DNSにより、OpenVPNピア/サーバーから渡されたオプションからDNSサーバーアドレスが取得され、resolvconfそれに応じて構成されます。それも扱いdhcp-option DOMAINます。

ただし、ネームサーバーのリストを上書きするのではなく、既存のネームサーバーのリストの前にそれらのネームサーバーを追加するため、完全ではありません。を使用してopenresolvいる場合は、-xを使用してDNS設定を上書きする代わりに上書きできます。


を使用している場合はsystemd-resolved、の代わりに/etc/openvpn/update-systemd-resolvedwhichフックを使用できます。systemd-revolvedresolvconf

script-security 2 
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre

Debianでは、このスクリプトはにありopenvpn-systemd-resolvedます。


2
これらの2行の上にscript-security 2openvpnwith--script-security 2
32r34wgf3e

0

これが私が思いついた解決策です:トンネルが稼働しているときにスクリプトを実行できるスイッチがあります。このスイッチを使用して、本質的にresolv.confファイルを正しいとわかっているファイルで上書きします。それは完全なハックだと私は知っています。

sudo openvpn --up reset-dns.sh --client client.ovpn

スクリプト(reset-dns):

#!/bin/bash
cp ~/resolv.conf /etc/resolv.conf

また、「OMG!トンネルをrootとして実行している!」他の方法では実行されません。DNSハックの前でも。

私は間違いなくより良い方法を受け入れています。ubuntuのネットワークマネージャーは機能しません。これでubuntuのチケットを何度もカットしました

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