Wireguard logo

Wireguard not working after update to Fedora 34: a simple fix

I recently updated my work laptop to Fedora 34 (from Fedora 32, oops!) and while i’ve had a very, very positive impression overall, one thing just stopped working there and then after the upgrade: my Wireguard config.

I use Wireguard to keep a VPN tunnel open to a server, which gets automatically started after the laptop boots by a systemd service unit. I also run dnsmasq to make it possible to split DNS resolution between work’s internal servers and the general Internet.

But here, it would just fail, with this one line indicating the culprit:
resolvconf[597860]: Failed to set DNS configuration: Could not activate remote peer.

Is this a problem of dnsmasq not starting? Nope, it’s working and resolving queries.

If you look into this, you’ll see things about installing openresolv (from source, but it’s super easy!) and end up, as one always does, on the excellent Arch Linux documentation, trying to muster the motivation to read through the thorough page. I didn’t really want to install openresolv when it’s not the default (even though, it’s worth mentioning in the two years since the recommendation to install it from source it has actually been packaged and is in the default Fedora repos)

Thankfully, the answer in this case was much simpler. Since Fedora 33, systemd-resolved (systemd’s DNS resolver) is enabled by default on new installs.

Except in my case (and maybe in yours), it wasn’t enabled and therefore not started after the upgrade to F34.

A simple command resolved the issue:

systemctl enable systemd-resolved

And now resolvectl --status also shows something useful.

Now, i just need to learn more about what what resolved can do for me (or what i might not like about it). It looks like it might simplify, or at least be a different option for my split DNS configuration. We’ll see!

Leave a Reply

Your email address will not be published. Required fields are marked *