GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Résolu par Systemd, Resolvconf.service, Resolvconf et Openresolv. Pourquoi, lequel et comment ?

J'utilise un client VPN qui ajoute deux serveurs de noms à /etc/resolv.conf . Toutes mes connexions sont gérées par Network-Manager.

Je dois utiliser ce client VPN pour mon travail VPN mais après qu'Ubuntu soit passé à systemd-resolved en 16.10, j'ai des problèmes avec ma connexion et mon DNS. Ressemble à systemd-resolved modifie /etc/resolv.conf retour aux serveurs de noms par défaut pour une raison qui empêche les pages internes de se résoudre. J'ai examiné cela un peu plus et j'ai fini par remplacer resolvconf avec openresolv . Cela a beaucoup aidé, mais toujours systemd-resolved réinitialise /etc/resolv.conf après que le VPN ait fonctionné pendant un certain temps.

Cela peut être juste au moment où la connexion est établie ou après quelques minutes ou parfois pas du tout. J'ai ensuite désactivé systemd-resolved et le systemd resolvconf.service et exécutez uniquement openresolv . Tout fonctionne bien semble-t-il.

Cependant, tout cela est très déroutant. Y a-t-il une raison d'utiliser systemd-resolved avec l'un des autres ? Il a été activé dans Ubuntu 16.10, donc j'ai pensé qu'il devait y avoir une raison à cela, mais cela semble provoquer une bagarre sur /etc/resolv.conf .

Ce serait formidable si je pouvais simplement exécuter operesolv et obtenir ceci expliqué. J'ai lu pas mal de choses dessus mais je ne comprends toujours pas pourquoi /etc/resolv.conf est géré tel quel, sauf que lorsque j'utilise systemd pour cela, je ne peux pas utiliser mon client VPN.

Réponse acceptée :

J'ai réussi à changer le script qui gère ces éléments de configuration dans OpenVPN dans Ubuntu (testé le 18.04). Voici un correctif pour cela :

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

Vous devrez ajouter les éléments suivants à votre fichier de configuration OpenVPN :

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

Ubuntu
  1. Comment installer et configurer Fail2Ban sur CentOS 8 et Fedora 33

  2. Redis comme cache :comment ça marche et pourquoi l'utiliser

  3. Pourquoi les données sont importantes et comment les protéger

  4. Comment installer et configurer Dovecot

  5. Comment installer et configurer Redis 6 sur Fedora 34

Comment installer et utiliser Monit sur Debian 9 / Ubuntu 16.04

Comment trouver quel service écoute sur un port particulier

Comment activer et désactiver les interfaces réseau dans Ubuntu 20.04

Pourquoi et comment installer Unity 7 Desktop sur Ubuntu 18.04 LTS

Comment installer et configurer le partage de fichiers Samba sur Ubuntu 20.04

Comment savoir quel programme utilise Internet et combien ?