GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Systemd-resolved, Resolvconf.service, Resolvconf und Openresolv. Warum, welche und wie?

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

Ubuntu
  1. So installieren und konfigurieren Sie Fail2Ban unter CentOS 8 und Fedora 33

  2. Redis als Cache:Wie es funktioniert und warum man es verwendet

  3. Warum Daten wichtig sind und wie man sie schützt

  4. So installieren und konfigurieren Sie Dovecot

  5. So installieren und konfigurieren Sie Redis unter Debian

So installieren und verwenden Sie Monit unter Debian 9 / Ubuntu 16.04

So finden Sie heraus, welcher Dienst an einem bestimmten Port lauscht

So aktivieren und deaktivieren Sie Netzwerkschnittstellen in Ubuntu 20.04

Warum und wie man Unity 7 Desktop auf Ubuntu 18.04 LTS installiert

So installieren und konfigurieren Sie die Samba-Dateifreigabe unter Ubuntu 20.04

So finden Sie heraus, welches Programm das Internet nutzt und wie viel?