Ich verwende einen VPN-Client, der zwei Nameserver zu /etc/resolv.conf hinzufügt . Alle meine Verbindungen werden von Network-Manager verwaltet.
Ich muss diesen VPN-Client für mein Arbeits-VPN verwenden, aber nachdem Ubuntu zu systemd-resolved gegangen ist in 16.10 habe ich Probleme mit meiner Verbindung und DNS. Sieht aus wie systemd-resolved ändert /etc/resolv.conf aus irgendeinem Grund zurück zu den Standard-Nameservern, was dazu führt, dass interne Seiten nicht aufgelöst werden. Ich habe mir das etwas genauer angesehen und am Ende resolvconf ersetzt mit openresolv . Das hat sehr geholfen, ist aber immer noch systemd-resolved setzt /etc/resolv.conf zurück nachdem das VPN eine Weile in Betrieb war.
Es kann sein, dass die Verbindung gerade aufgebaut wird oder nach einigen Minuten oder manchmal gar nicht. Ich habe dann systemd-resolved deaktiviert und der systemd resolvconf.service und führen Sie nur openresolv aus . Es scheint alles gut zu funktionieren.
Allerdings ist das alles sehr verwirrend. Gibt es einen Grund für die Verwendung von systemd-resolved mit einem der anderen? Es wurde in Ubuntu 16.10 aktiviert, also dachte ich, es muss einen Grund dafür geben, aber es scheint einen Streit um /etc/resolv.conf zu verursachen .
Es wäre großartig, wenn ich einfach operesolv ausführen könnte und lass dir das erklären. Ich habe ziemlich viel darüber gelesen, aber ich verstehe immer noch nicht, warum /etc/resolv.conf wird verwaltet, wie es ist, nur dass, wenn ich systemd verwende Dafür kann ich meinen VPN-Client nicht verwenden.
Akzeptierte Antwort:
Ich habe es geschafft, das Skript zu ändern, das diese Konfigurationselemente in OpenVPN in Ubuntu verarbeitet (getestet am 18.04). Hier ist ein Patch dafür:
--- /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
Sie müssen Ihrer OpenVPN-Konfigurationsdatei die folgenden Elemente hinzufügen:
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf