Few issues with Wireguard client on Debian
Today I tried to configure Wireguard client on one my Debian machine and I faced with few issues.
The first one was related to resolvconf - after the installation of Wireguard client and adding of the configuration file I tried to start the client and got such error:
~ wg-quick up wg0 [#] ip link add wg0 type wireguard [#] wg setconf wg0 /dev/fd/63 [#] ip -4 address add 10.6.0.2/32 dev wg0 [#] ip link set mtu 1420 up dev wg0 [#] resolvconf -a wg0 -m 0 -x /usr/bin/wg-quick: line 32: resolvconf: command not found [#] ip link delete dev wg0
After short googling I figured out that modern Linux distributions with systemd comes with its own flavor of resolvconf as part of the resolvectl command. And for the fix of this issue I can just create a symlink:
~ ln -s /usr/bin/resolvectl /usr/local/bin/resolvconf
Also, there is a Debian bug report related to this symlink.
When I tried to run Wireguard client again I got next message:
~ wg-quick up wg0 [#] ip link add wg0 type wireguard [#] wg setconf wg0 /dev/fd/63 [#] ip -4 address add 10.6.0.2/32 dev wg0 [#] ip link set mtu 1420 up dev wg0 [#] resolvconf -a wg0 -m 0 -x Failed to set DNS configuration: Unit dbus-org.freedesktop.resolve1.service not found. [#] ip link delete dev wg0
This message was pretty straightforward - as I put in my Wireguard configuration the line with private DNS server address it required from me to check systemd-resolved.service status on my client machine and to start it if turned off.
~ systemctl status systemd-resolved.service ● systemd-resolved.service - Network Name Resolution Loaded: loaded (/lib/systemd/system/systemd-resolved.service; disabled; vendor preset: en> Active: inactive (dead) Docs: man:systemd-resolved.service(8) man:org.freedesktop.resolve1(5) https://www.freedesktop.org/wiki/Software/systemd/writing-network-configuration-m> https://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients ~ systemctl start systemd-resolved.service
Also I enabled the service starts whenever the system boots:
~ systemctl enable systemd-resolved.service
After that I was able to run Wireguard client and to connect to the server successfully.