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