OpenWrt Router DNS via Wireguard - Wie einrichten?

grünerbert

Lieutenant
Registriert
Aug. 2015
Beiträge
663
TL;DR Wie bekomme ich OpenWrt so konfiguriert, dass alle damit verbundenen Endgeräte den gewünschten DNS-Server nutzen, der nur via WireGuard erreichbar ist?

Auf einem VPS (Debian 12) laufen wg-easy und AdGuard Home via Docker. Dieser dient als Wireguard-VPN-Server, wobei AdGuard Home als DNS-Server für alle Clients fungiert. Diverse iOS-, iPadOS- und Ubuntu GNU/Linux-Clients habe ich damit verbunden und es funktioniert einwandfrei. dnsleaktest.com zeigt, dass tatsächlich AdGuard Home genutzt wird.
Da jedoch manche Endgeräte (z.B. Spielekonsolen, SmartTV) keine WireGuard-App haben, möchte ich einen billigen OpenWrt Router (ASUS RT-AC51U) mit dem VPS verbinden. Der gesamte Traffic des Routers (bzw. der dahinter hängenden Endgeräte) soll durch den Tunnel gehen (Full Tunnel, Masquerading). Und die Geräte sollen AdGuard Home (auf dem VPS) als DNS-Server nutzen.
Da ich kein separates DSL-Modem habe, ist der Router über seinen WAN-Port an die FritzBox angeschlossen, und per LAN an den Rechner bzw. die Endgeräte.

Habe bereits hier im Forum gesucht und auch im Netz diverse Anleitungen gefunden, sowohl kommandozeilenbasiert als auch grafisch.
Was habe ich bisher gemacht? (✅ funktioniert, ❌ funktioniert nicht)
  • in der wg-easy Oberfläche eine entsprechende Config erstellt und heruntergeladen ✅
  • In LuCI unter Network --> Interfaces ein neues mit dem Protokoll Wireguard_VPN erstellt und die Config importiert ✅
  • Wireguard Easy gecheckt: Es sieht den Client, Pakete erscheinen ✅
  • OpenWrt LuCI gecheckt: Zeigt eigenfalls Uptime, RX und TX an ✅
  • Meine öffentliche IPv4 gecheckt: Ist die des Wireguard-Servers (nachdem ich unter Interfaces --> Peers "Route Allowed IPs" aktiviert habe) ✅
  • Speedtest liefert nur ca. 20 Mbit/s Uplink/Downlink, weil der ASUS Router mit WireGuard nicht mehr schafft ✅
So weit, so gut. Lieder zeigt dnsleaktest.com noch den DNS-Server aus der FritzBox an, nicht die in AdGuard Home eingetragenen. ❌
Wenn ich mich per SSH auf den OpenWrt-Router verbinde, steht in der wg Interface Config die korrekte IP von AdGuard Home:
Bash:
root@OpenWrt:~# cat /etc/config/network
...
config interface 'wg'
    option proto 'wireguard'
    option private_key 'reda'
    option public_key 'efgh'
    option preshared_key 'cted='
    option endpoint_host '1234.example.com'
    option endpoint_port '51820'
    option persistent_keepalive '25'
    option route_allowed_ips '1'
    list allowed_ips '0.0.0.0/0, ::/0, 192.168.185.0/24'
    list addresses '192.168.185.20/24'
    list dns '172.21.0.17'

Außerdem habe ich getestet:
Bash:
root@OpenWrt:~# ping -c3 172.21.0.17
Funktioniert und liefert einen Wert um die 12 ms.

Hat jemand das von mir beschriebene Ziel schon erreicht, oder eine Idee, wie ich den richtigen DNS-Server in OpenWrt einstellen kann?
 
madmax2010 schrieb:
e.g.
DNS = 1.1.1.1, 9.9.9.9
Du meinst in der wg-easy Config? Dort habe ich DNS = 172.21.0.17
Das habe ich ebenso in den besagten Endgeräten eingestellt, denn nur so läuft alles über AdGuard Home.
Vorher hatte ich DNS = 172.21.0.17, 1.1.1.1 und da lief DNS meist über 1.1.1.1 statt über AdGuard Home.
 
Für mich sieht es so aus als würde die FritzBox immer noch per DHCP den FritzBox DNS Server verteilen.
Deine Endgeräte die ja nicht direkt im Wireguard Netz hängen bekommen so den DNS Override gar nicht mit sondern den per DHCP verteilten.
Entweder in den Geräten einzeln den DNS Server ändern oder von der FritzBox einen anderen verteilen lassen, dann ist dein DNS aber weg sobald irgendwas mit dem Wireguard Tunnel oder dem OpenWRT Router ist
 
Zurück
Oben