Ich verwende den Wireguard-Client mit dem folgenden PostUp-Skript:
PostUp = systemd-resolve -i %i --set-dns=x.x.x.x --set-domain=~.
systemd-resolve
habe die DNS-Einstellung richtig vorgenommen und 127.0.0.53
konnte die Domäne auflösen.
$ resolvectl status
Link 5 (wg1)
Current Scopes: DNS
DefaultRoute setting: yes
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: yes
DNSSEC supported: yes
Current DNS Server: x.x.x.x
DNS Servers: x.x.x.x
DNS Domain: ~.
Aber die DNS-Einstellung wird nach dem Aufwachen aus dem Ruhezustand zurückgesetzt:
$ resolvectl status
Link 5 (wg1)
Current Scopes: none
DefaultRoute setting: no
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: yes
DNSSEC supported: yes
Ich habe einen ... gefundenähnliche Frage, aber hier geht es darum, dass die Konfiguration auch nach einem Ruhezustand erhalten bleibt, nicht nach einem Neustart. In meinem Fall bleibt die DNS-Einstellung auch nach einem Neustart erhalten.
Ich verwende Wireguard von Ubuntu, nicht das PPA.
$ apt search wireguard
wireguard/eoan,eoan,now 0.0.20190913-1ubuntu1 all [installed]
wireguard-dkms/eoan,eoan,now 0.0.20190913-1ubuntu1 all [installed,automatic]
wireguard-tools/eoan,now 0.0.20190913-1ubuntu1 amd64 [installed,automatic]
Bearbeiten: Gleiches Problem mit der Launchpad-Version.
wireguard/eoan,eoan,now 0.0.20191012-wg1~eoan all [installed]
wireguard-dkms/eoan,eoan,now 0.0.20191012-wg1~eoan all [installed,automatic]
wireguard-tools/eoan,now 0.0.20191012-wg1~eoan amd64 [installed,automatic]
Ich habe mehrere Workarounds ausprobiert, keiner davon hat funktioniert.
/etc/systemd/network/wireguard.network
[Match]
Name=wg1
[Network]
DNS=x.x.x.x
Domains=~.
Während dieser Ansatz den DNS für die Wireguard-Schnittstelle festlegte, erfolgte nach dem Aufwecken ein von systemd aufgelöster Fallback auf den DNS von eth0.
$ resolvectl status
Link 5 (wg1)
Current Scopes: none
Current DNS Server: x.x.x.x
DNS Servers: x.x.x.x
Link 2 (eth0)
Current Scopes: DNS
Current DNS Server: y.y.y.y
DNS Servers: y.y.y.y
- Führen Sie nach dem Aufwachen aus dem Ruhezustand ein Skript aus.
/lib/systemd/system-sleep/wireguard-dns
#!/bin/sh
case $1/$2 in
pre/*)
exit 0
;;
post/*)
# Place your post suspend (resume) commands here
systemd-resolve -i wg1 --set-dns=x.x.x.x --set-domain=~.
;;
esac
Dieser Workaround hat nicht funktioniert, die DNS-Konfiguration wurde nach dem Aufwachen trotzdem zurückgesetzt. Ich habe überprüft, ob das Skript ausgeführt wurde (ich habe es mit getestet echo "script executed" > /home/user/output
, die Datei mit dem Text war da), aber irgendwie hatte es keine Wirkung.
Ein ähnliches Skript /usr/lib/pm-utils/sleep.d
funktionierte nur ein paar Sekunden lang (nach dem Aufwachen), dann wurde die Konfiguration zurückgesetzt und auf den DNS von eth0 zurückgegriffen.
#!/bin/sh
case $1 in
thaw|resume)
systemd-resolve -i wg1 --set-dns=x.x.x.x --set-domain=~.
;;
esac
- Habe ein anderes Wake-from-Suspend-Skript ausprobiert, gleiches Ergebnis wie Nr. 1.
#!/bin/sh
if [ "$1" = "pre" ] && [ "$2" = "suspend" ]; then
wg-quick down wg1
elif [ "$1" = "post" ] && [ "$2" = "suspend" ]; then
wg-quick up wg1
fi
Bearbeiten: Gleiches Problem bei Neuinstallation.
Bearbeiten: Betrifft auch 19.04, bei Neuinstallation versucht.