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