NetworkManager does not respect custom DNS settings

I have a pppoe connection directly to my PC
Trying to use custom DNS servers through the “only addresses” option only works the first time I create the connection and connect to it.
But as soon as I disconnect then reconnect, or if I restart the PC etc, it does not longer respect the custom DNS servers, and it always will use the ISP provided ones until I delete it.

This is the config file it creates. BTW IPv6 also is not working, I don’t need it at all since I am fine with ipv4 still, but curious as to why.

cat 'New pppoe connection-27cd99f5-9abb-451c-b1************.nmconnection'
id=New pppoe connection






As you can see in your screenshot, the /etc/resolv.conf file create by NM contains the DNS servers form your NM connection config.

But you are also using a second program that changes /etc/resolv.conf . It is in this case resolvconf. This program has no idea how you configured NetworkManager.

You should stop using multiple programs that can modify /etc/resolv.conf . Pick one NM or resolvconf, but do not use both at the same time.

I have just firewalld installed, nothing else. It is otherwise the default config of Manjaro. That one is not messing with resolve settings.
I have tried to not start the firewalld service on startup, still the same behaviour.

That command in the screenshot I ran multiple times. Only the first time, before disconnecting the newly cereated connection, it respected the custom dns servers. The subsequent times I ran it was after reconnecting, and every time after that it was the isp servers.

To repeat - It only respects the custom DNS settings, only at the first connection, right after creating it. I have to delete the connection and recreate it, and it will only work once.

As you can see in your screenshot, it clearly states " # Generated by resolvconf" . This means it is not created by NetworManager. resolvconf can’t know how you configured NetworManager. You need to find out why resolvconf is doing it. At best remove this package from your system, if you can’t find out why it interferes.
It has of course nothing to do with firewalld.

In addition to xabbu’s post, changes to /etc/resolv.conf are generally temporary: "If resolvconf is available DNS information will be sent to it, if not, then dhcpcd itself will write to /etc/resolv.conf. openresolv is a resolvconf implementation and "is most known for allowing multiple applications to modify /etc/resolv.conf"

To set DNS, add this to /etc/dhcpcd.conf:

static domain_name_servers=

For more info, read this.

1 Like

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.