GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Systemd-resolved, Resolvconf.service, Resolvconf e Openresolv. Perché, quale e come?

Sto usando un client VPN che aggiunge due server dei nomi a /etc/resolv.conf . Tutte le mie connessioni sono gestite da Network-Manager.

Devo usare questo client VPN per la mia VPN di lavoro, ma dopo che Ubuntu è passato a systemd-resolved in 16.10 ho problemi con la mia connessione e DNS. Sembra systemd-resolved cambia /etc/resolv.conf torna ai server dei nomi predefiniti per qualche motivo che rende le pagine interne non risolte. Ho esaminato ulteriormente questo aspetto e ho finito per sostituire resolvconf con openresolv . Questo ha aiutato molto, ma è ancora systemd-resolved reimposta /etc/resolv.conf dopo che la VPN è attiva da un po'.

Potrebbe essere solo quando la connessione è attiva o dopo pochi minuti o talvolta per niente. Ho quindi disabilitato systemd-resolved e il systemd resolvconf.service ed esegui solo openresolv . Sembra che funzioni tutto bene.

Tuttavia, tutto questo è molto confuso. C'è un motivo per usare systemd-resolved con uno degli altri? Era abilitato in Ubuntu 16.10, quindi ho pensato che ci fosse un motivo per questo, ma sembra causare una disputa su /etc/resolv.conf .

Sarebbe fantastico se potessi semplicemente eseguire operesolv e fatti spiegare. Ci ho letto un bel po' ma ancora non capisco perché /etc/resolv.conf è gestito così com'è, solo che quando uso systemd per questo non posso usare il mio client VPN.

Risposta accettata:

Sono riuscito a modificare lo script che gestisce questi elementi di configurazione in OpenVPN in Ubuntu (testato il 18.04). Ecco una patch per questo:

--- /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

Dovrai aggiungere i seguenti elementi al tuo file di configurazione OpenVPN:

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

Ubuntu
  1. Come installare e configurare Fail2Ban su CentOS 8 e Fedora 33

  2. Redis come cache:come funziona e perché usarlo

  3. Come installare e configurare Dovecot

  4. Come installare e configurare Redis 6 su Fedora 34

  5. Come e perché utilizzare un host Docker remoto

Come installare e utilizzare Monit su Debian 9 / Ubuntu 16.04

Come trovare quale servizio è in ascolto su una porta particolare

Come abilitare e disabilitare le interfacce di rete in Ubuntu 20.04

Perché e come installare Unity 7 Desktop su Ubuntu 18.04 LTS

Come installare e configurare la condivisione di file Samba su Ubuntu 20.04

Come scoprire quale programma utilizza Internet e quanto?