This project contains AmneziaWG patches for Linux and systemd. Unlike the AmneziaWG kernel module, these patches apply to the in-tree WireGuard module in Linux kernel, and also provide patches that allow using AmneziaWG extensions with systemd-networkd.
Note that AmneziaWG implementation is derived from AmneziaWG patches, but is not the exact copy (e.g. unknown peer notifications are not supported).
Warning
Use at your own risk.
We also provide NixOS module that overrides the default systemd-networkd module to make it easier to set up hosts with these patches applied.
Note
Ideally, we’d like to leverage Extensible Option Types in NixOS module
system, but NixOS currently uses non-extensible unitOption type for systemd
configuration (including networkd module) instead of lib.types.submodules
.
So we vendor the updated module and disable the default one.
- NixOS and vendored modules are licensed under MIT.
- systemd, Linux, WireGuard and AmneziaWG are licensed under the GPL-2.0.
- linux.patch is derived from AmneziaWG kernel module and hence is distributed under the terms of GPL-2.0.
- systemd.patch is in public domain, unless in conflict with GPL-2.0 license.