/etc/resolv.conf
に2つのネームサーバーを追加するVPNクライアントを使用しています 。私の接続はすべてNetwork-Managerによって管理されています。
仕事用VPNにはこのVPNクライアントを使用する必要がありますが、Ubuntuがsystemd-resolved
に移行した後 16.10では、接続とDNSに問題があります。 systemd-resolved
のように見えます /etc/resolv.conf
を変更します 内部ページが解決されない何らかの理由でデフォルトのネームサーバーに戻ります。私はこれをもう少し調べて、resolvconf
を置き換えることになりました openresolv
を使用 。それは大いに役立ちましたが、それでもsystemd-resolved
/etc/resolv.conf
をリセットします VPNがしばらく稼働した後。
接続が確立されたとき、数分後、またはまったく接続されていない可能性があります。次に、systemd-resolved
を無効にしました およびsystemd resolvconf.service
openresolv
のみを実行します 。すべてうまく機能しているようです。
ただし、これはすべて非常に紛らわしいです。 systemd-resolved
を使用する理由はありますか 他の1人と? Ubuntu 16.10で有効になっているので、理由があるはずだと思いましたが、/etc/resolv.conf
をめぐって争いが発生しているようです。 。
operesolv
を実行できれば素晴らしいと思います これを説明してもらいます。私はそれについてかなり読んだことがありますが、なぜ/etc/resolv.conf
なのかまだわかりません systemd
を使用した場合にのみ、そのまま管理されます そのため、VPNクライアントを使用できません。
承認された回答:
UbuntuのOpenVPNでこれらの構成アイテムを処理するスクリプトを変更することができました(18.04でテスト済み)。そのためのパッチは次のとおりです:
--- /etc/openvpn/update-resolv-conf.orig 2019-03-13 19:14:16.163914424 +0400
+++ /etc/openvpn/update-resolv-conf 2019-03-13 19:29:30.380420708 +0400
@@ -15,7 +15,7 @@
# foreign_option_3='dhcp-option DOMAIN be.bnc.ch'
#
-[ -x /sbin/resolvconf ] || exit 0
+[ -x /usr/bin/systemd-resolve ] || exit 0
[ "$script_type" ] || exit 0
[ "$dev" ] || exit 0
@@ -43,16 +43,16 @@
fi
done
R=""
- [ "$SRCHS" ] && R="search $SRCHS
-"
+ for SRCH in $SRCHS ; do
+ R="${R}--set-domain=$SRCH "
+ done
for NS in $NMSRVRS ; do
- R="${R}nameserver $NS
-"
+ R="${R}--set-dns=$NS "
done
- echo -n "$R" | /sbin/resolvconf -a "${dev}.openvpn"
+ /usr/bin/systemd-resolve -i ${dev} ${R}
;;
down)
- /sbin/resolvconf -d "${dev}.openvpn"
+ echo "Doing nothing, interface disappears."
;;
esac
OpenVPN構成ファイルに次の項目を追加する必要があります:
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf