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