Linux client doesn't apply internal DNS after VPN connection (EOS, arch-based)

System information:

  • OS: EndeavourOS (Arch-based, fully updated)
  • Laptop: Honor Magicbook X16 Pro (Ryzen 7 7840HS, 16GB RAM)
  • Pritunl Client version: 1.3.4275.94-1 (pritunl/pritunl-client-electron from pritunl)

Issue:

I am using Pritunl VPN client on a Linux laptop (EndeavourOS with systemd-resolved enabled). The VPN connects successfully, and the VPN DNS server (e.g., 192.168.0.10) is reachable by ping and responds correctly to DNS queries when tested via dig.

However, after connection, DNS resolution for internal VPN hostnames does not work properly — I get temporary failure in name resolution. It seems systemd-resolved does not route DNS queries through the VPN DNS server as expected.

I have checked the current DNS configuration using resolvectl status:

- `wlan0` interface DNS: 192.168.0.1 (local router)
- `tun0` interface DNS: 192.168.0.10 (VPN DNS server)
- Both interfaces have `Default Route: yes`

I suspect the conflict between multiple default routes and systemd-resolved handling of DNS is causing the problem.

Could you please advise on the best practice to configure systemd-resolved to correctly use the Pritunl VPN DNS server? Is there a recommended way to configure split-DNS or force DNS queries over VPN interface without disrupting other connectivity?

Thank you in advance for your help!

[wavewithme@magicbook ~]$ resolvectl status tun0
Link 4 (tun0)
    Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6 mDNS/IPv4 mDNS/IPv6
         Protocols: +DefaultRoute +LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 192.168.0.10
       DNS Servers: 192.168.0.10
     Default Route: yes
[wavewithme@magicbook ~]$

Not all of the DNS handlers on Linux are supported. You would need to manually set the DNS server or use the NetworkManager OpenVPN client if supported. Some connection modes will only work with the Pritunl Client.

Thanks for your reply.
Can you please show and suggest basic things that need to be done to manually configure the DNS server?

With resolvectl sudo resolvectl dns eth0 192.168.0.10 and NetworkManger nmcli connection modify "connection-name" ipv4.dns "192.168.0.10" ipv4.ignore-auto-dns yes.