I’m trying to get networkd to connect to a wireguard endpoint, specifically ProtonVPN, in case it matters. I just can’t get it to connect. Has anyone had success with that? Specifically without using wg-quick.

2xsaiko
link
fedilink
English
62M

I use it for Mullvad and a couple internal things but yeah it works for me.

@Chais@sh.itjust.works
creator
link
fedilink
English
02M

Do you notice anything wrong with my config? https://github.com/systemd/systemd/issues/30495

2xsaiko
link
fedilink
English
12M

Seems fine to me except for all the firewall and special routing stuff, I’m not familiar with that. Does the wg command show received or only sent data? For the record, this is my config:

spoiler
# /etc/systemd/network/mullvad.netdev
[NetDev]
Description=Mullvad
Kind=wireguard
Name=mullvad

[WireGuard]
PrivateKeyFile=/var/keys/mullvad/pk

[WireGuardPeer]
AllowedIPs=::/0
AllowedIPs=0.0.0.0/0
Endpoint=146.70.126.194:51820
PublicKey=ApOUMLFcpTpj/sDAMub0SvASFdsSWtsy+vvw/nWvEmY=

# /etc/systemd/network/mullvad.network
[Match]
Name=mullvad

[Network]
Address=10.64.130.96/32
Address=fc00:bbbb:bbbb:bb01::1:825f/128

[Route]
Destination=::/0
Metric=16384

[Route]
Destination=0.0.0.0/0
Metric=16384
@blurry@feddit.org
link
fedilink
English
13
edit-2
2M

Yes I use wireguard only with systemd-networkd (as server and as client).

I followed the arch wiki and you need to ensure that the file permissions are correct, otherwise systemd will ignore them.

Copied from the wiki:

# chown root:systemd-network /etc/systemd/network/99-*.netdev # chmod 0640 /etc/systemd/network/99-*.netdev 
@Chais@sh.itjust.works
creator
link
fedilink
English
02M

Do you notice anything wrong with my config? https://github.com/systemd/systemd/issues/30495

@blurry@feddit.org
link
fedilink
English
1
edit-2
2M

Have you tried to reduce your config to a minimum (like in the wiki) and add additional parts step by step? F.e. the link and route parts? So you can maybe identify the block/line which breaks your config.

Edit: I have never seen ActivationPolicy before. Is it NixOS specific? An additional idea how are your files named? systemd-networkd uses the name of the file as indicator for the initialization order (alphanumeric order is applied here). Which means that wireguard.network will be used xx.network. I mean the lower w is near the end of the ascii table, but the devil is in the details and maybe your ethernet or wifi connection will be established after wireguard and therefore wireguard will not be able to connect. F.e. wlan.network for example will come up after wireguard.network. (As I remember that would not be the case using wg-quick, because its unit file depends network-online.target.)

@Chais@sh.itjust.works
creator
link
fedilink
English
12M

The ActivationPolicy I added in an attempt to replicate what wg-quick produces, as I recall.

@blurry@feddit.org
link
fedilink
English
12M

Do you have a link where it is documented in systemd-networkd content?

Create a post

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.

Rules:

  1. Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it’s not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

  • 1 user online
  • 279 users / day
  • 589 users / week
  • 1.34K users / month
  • 4.55K users / 6 months
  • 1 subscriber
  • 3.5K Posts
  • 70K Comments
  • Modlog