GNU/Linux >> Linux の 問題 >  >> Ubuntu

OpenvpnクライアントがDNS情報を取得していませんか?

DD-WRTがインストールされたルーターで実行されているOpenVPNサーバーを使用しており、VPNサーバーを介してすべてのトラフィックをルーティングするために使用しています。 Windowsラップトップ、Androidデバイス、Linuxマシンなど、いくつかのデバイスから接続しています。私が今抱えている問題は最近のもので、以前はすべてうまくいきました。この問題は、Linux(ubuntu 16.04)を搭載したクライアントマシンでのみ発生します。 ubuntuクライアントはDNSサーバーアドレスを自動的に取得しません。調査の結果、クライアント構成の最後に次のものを追加する必要があることがわかりました。

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

これは役に立たなかったので、私も追加しました:

dhcp-option DNS a.b.c.d
dhcp-option DNS e.f.g.h

IPはルーターから取得され、機能します。これまでは、クライアント構成に「redirect-gatewaydef1」を含めるだけで十分でした。

DNSサーバーの変更を監視する必要があるため、「dhcp-optionDNS」コマンドを追加するこのソリューションは好きではありません。 「dhcp-optionDNS」オプションの追加を取り除く方法はありますか?

承認された回答:

私は同じ問題を抱えていましたが、次のハックを使用してそれを解決することができました:
up /etc/openvpn/update-resolv-confの代わりに /etc/openvpnにup.shという名前のファイルを作成しました。
コマンドsudo gedit /etc/openvpn/up.shを実行します。 以下を貼り付けます:

#! /bin/bash
DEV=$1

if [ ! -d /tmp/openvpn ]; then
mkdir /tmp/openvpn
fi
CACHE_NAMESERVER="/tmp/openvpn/$DEV.nameserver"
echo -n "" > $CACHE_NAMESERVER

dns=dns
for opt in ${!foreign_option_*}
do
eval "dns=${$opt#dhcp-option DNS }"
if [[ $dns =~ [0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3} ]]; then
if [ ! -f /etc/resolv.conf.default ]; then
cp /etc/resolv.conf /etc/resolv.conf.default
fi

cat /etc/resolv.conf | grep -v ^# | grep -v ^nameserver > /tmp/resolv.conf
echo "nameserver $dns" >> /tmp/resolv.conf
echo $dns >> $CACHE_NAMESERVER
cat /etc/resolv.conf | grep -v ^# | grep -v "nameserver $dns" | grep nameserver >> /tmp/resolv.conf
mv /tmp/resolv.conf /etc/resolv.conf

fi
done

保存して、sudo chmod +x /etc/openvpn/up.shを実行します 次に、別のファイル/etc/openvpn/down.shを作成します 以下を貼り付けます

#! /bin/bash
echo "Restoring original nameservers"
rm -f /etc/resolv.conf
ln -s /run/resolvconf/resolv.conf /etc/resolv.conf 
echo "Done restoring nameservers cheers"

保存して、sudo chmod +x /etc/openvpn/down.shを実行します

次に、行を削除します:

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

そして、それらを次のように置き換えます:

 script-security 2
    up /etc/openvpn/up.sh
    down /etc/openvpn/down.sh

Ubuntu
  1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  2. Ubuntu – / usr / bin/hostは再起動後も/etc/ hostsへの変更を取得しませんか?

  3. /etc/x11/xorg.conf存在しませんか?

  1. / bin/shが/bin/bashではなく/bin/ dashを指すのはなぜですか?

  2. Network Manager:Nmの更新/etc/resolv.confを停止する方法は?

  3. / etc / motdはどのように更新されますか?

  1. 起動するたびに/etc/resolv.confを上書きするものは何ですか?

  2. /etc/passwd はグループ内のユーザーを表示しますが、/etc/group は表示しません

  3. /etc/resolv.conf が 127.0.0.53 を指しているのはなぜですか?