• tal@olio.cafe
    link
    fedilink
    English
    arrow-up
    3
    ·
    6 days ago

    DNS

    There’s systemd-resolved. I don’t know if you mean that it has some kind of limitation.

    • Dhar@lemmy.ca
      link
      fedilink
      arrow-up
      1
      ·
      5 days ago

      It doesn’t work with private DNS servers or forward DNS over VPN. Removing it is always the first thing I have to do with new Linux installs.

      • tal@olio.cafe
        link
        fedilink
        English
        arrow-up
        1
        ·
        5 days ago

        It doesn’t work with private DNS servers or forward DNS over VPN.

        Like, you want to have it query some particular DNS server?

        From man 5 resolved.conf:

           DNS=
               A space-separated list of IPv4 and IPv6 addresses to
               use as system DNS servers. 
        
               For compatibility reasons, if
               this setting is not specified, the DNS servers listed
               in /etc/resolv.conf are used instead, if that file
               exists and any servers are configured in it.
        

        If you specify your private server there, it should work. For VPN, I mean, whatever VPN software you’re using will need to plonk it in there. Maybe yours is not aware of systemd-resolved, is modifying /etc/resolv.conf after systemd-resolved has already started, and it doesn’t watch it for updates?

        In my /etc/nsswitch.conf, I have:

        hosts:          files myhostname mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns
        

        I’m assuming that the “resolve” entry is for systemd-resolved.

        kagis

        https://www.procustodibus.com/blog/2022/03/wireguard-dns-config-for-systemd/

        With systemd-resolved, however, instead of using that DNS setting, add the following PostUp command to the [Interface] section of your WireGuard config file:

        PostUp = resolvectl dns %i 9.9.9.9#dns.quad9.net 149.112.112.112#dns.quad9.net; resolvectl domain %i ~.
        

        When you start your WireGuard interface up, this command will direct systemd-resolved to use the DNS server at 9.9.9.9 (or at 149.112.112.112, if 9.9.9.9 is not available) to resolve queries for any domain name.