Warum muss man beim Linux WG-Client immer das DNS auskommentieren, damit es funktioniert?

Wenn ich einen WG-Client unter Windows einrichte, gebe ich einfach das Config-Formular ein und die Sache läuft. Unter Linux (Mint) geht es nur, wenn ich die DNS-Zeile auskommentiere. Warum ist das so? Welche Konsequenzen hat das und kann/sollte man das irgendwie fixen?

Naja das geht ganz sicher auch mit der DNS Zeile. Du musst nur den dahinter liegenden DNS Server auch erreichen können. Das hängt dann aber von deiner Konfig von Wireguard ab was erlaubt ist und was nicht.

Der Server ist die Fritzbox 192.168.92.1 und die hat mir ungefähr folgdendes gegeben:

[Interface]
PrivateKey = bla
Address = 192.168.92.202/24
#DNS = 192.168.92.1
#DNS = fritz.box

[Peer]
PublicKey = bla
PresharedKey = bla
AllowedIPs = 192.168.92.0/24,0.0.0.0/0
Endpoint = abcde1234.myfritz.net:12345
PersistentKeepalive = 25

Solange das DNS auskommentiert ist, kann ich sie erreichen. Aber wenn ich die Auskommentierung wegnehme kommt:

root@mint:/home/tchangalo# wg-quick up wg0
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 192.168.52.202/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a wg0 -m 0 -x
/usr/bin/wg-quick: line 32: resolvconf: command not found
[#] ip link delete dev wg0

Also es scheint etwas in der resolvconf zu fehlen, aber die wird m.W. automatisch generiert und wenn ich da was verändere, wird das nach dem nächsten Systemstart wieder überschrieben (soweit ich weiß).

192.168.92.1 das ist also die ENTFERNTE Fritzbox auf welche du einen Wireguard Tunnel aufbaust korrekt?

Mach doch mal auf diese IP einen Ping… 192.168.92.1 kommt der an ?

Nur mal aus Testzwecken, nimm mal einen Öffentlichen DNS Anbieter. 1.1.1.1 oder so. Zum testen.

Genau die Fritzbox ist entfernt. Sowohl in meiner als auch in der entfernten Fritzbox sind 1.1.1.1 als der primäre DNS-Server festgelegt. Wenn die beiden DNS-Zeilen auskommentiert sind, kann ich die entfernte Fritzbox problemlos anpingen. Wenn die Auskommentierung weg ist, ist Destination Net Unreachable, weil der Tunnel gar nicht erst aufgebaut wird.

Ist es vielleicht so, dass, wenn ich die DNS-Zeilen auskommentiere, geht die DNS-Auflösung eben alles von MEINER Fritzbox aus über 1.1.1.1, ohne den Weg über die entfernte Fritzbox?

Ich würde die Zeile

dns=fritz.box

ganz weg lassen und wenn nur die IP da rein packen. Wohlmöglich kann er den Namen „fritz.box“ VORHER nicht auflösen. Das wird das Problem sein.

Wenn ich es so mache:

[Interface]
PrivateKey = bla
Address = 192.168.92.202/24
DNS = 192.168.92.1
dns = fritz.box

bleibt das Problem immer noch gleich. (Und wenn ich die Zeile ganz lösche auch). Das hattest du gemeint oder?

Du sollst nur den Eintrag „DNS=fritz.box“ löschen, sonst alles gleich lassen.

Cloudflare (1.1.1.1), wie im Übrigen auch alle anderen, lösen fritz.box nicht auf.

Jupp hab ich so gemacht (also DNS = fritz.box gelöscht), Problem bleibt aber.

Ich hatte das schonmal recherchiert und folgenden Link gefunden, wo das zwar diskutiert wird, aber ohne Lösung:

Jemand anders schreibt:
„It’s not the solution, but if you comment out the DNS in the wg0 conf file it will work. wg-quick does a bunch of things behind the scenes, one of them is adjusting the nameserver, typically to use your vpn providers. Set your /etc/resolv.conf to use Cloudflare (1.1.1.1), then try again. It should connect without the resolvconf dependency.“
Aber da gehe ich davon aus, dass das nach dem nächsten Systemstart in der resolvconf überschrieben wird.

Du kannst das natürlich konfigurieren:
https://man7.org/linux/man-pages/man5/systemd.network.5.html

Habs gefunden. Die Lösung lautet schlicht und einfach:

sudo apt install openresolv

Trotzdem danke fürs schreiben; hätte mich sonst nicht nochmal damit befasst und vielleicht hilfts ja anderen, die auch auf das Phänomen stoßen.