WireGuard: Difference between revisions
imported>Zaechus m DHCP=none is deprecated, please use DHCP=no instead |
imported>Zaechus use more than just extraConfig for the networkd example |
||
| Line 242: | Line 242: | ||
<syntaxHighlight lang="nix"> | <syntaxHighlight lang="nix"> | ||
{ config, pkgs, lib, ... }:{ | { config, pkgs, lib, ... }: { | ||
boot.extraModulePackages = [ config.boot.kernelPackages.wireguard ]; | boot.extraModulePackages = [ config.boot.kernelPackages.wireguard ]; | ||
systemd.network = { | systemd.network = { | ||
| Line 250: | Line 250: | ||
netdevConfig = { | netdevConfig = { | ||
Kind = "wireguard"; | Kind = "wireguard"; | ||
Name = "wg0"; | |||
MTUBytes = "1300"; | MTUBytes = "1300"; | ||
}; | }; | ||
# See also man systemd.netdev (also contains info on the permissions of the key files) | # See also man systemd.netdev (also contains info on the permissions of the key files) | ||
wireguardConfig = { | |||
# Don't use a file from the Nix store as these are world readable. | # Don't use a file from the Nix store as these are world readable. | ||
PrivateKeyFile=/run/keys/wireguard-privkey | PrivateKeyFile = "/run/keys/wireguard-privkey"; | ||
ListenPort=9918 | ListenPort = 9918; | ||
}; | |||
wireguardPeers = [{ | |||
PublicKey=OhApdFoOYnKesRVpnYRqwk3pdM247j8PPVH5K7aIKX0= | wireguardPeerConfig = { | ||
PublicKey = "OhApdFoOYnKesRVpnYRqwk3pdM247j8PPVH5K7aIKX0="; | |||
AllowedIPs = [ "fc00::1/64" "10.100.0.1" ]; | |||
Endpoint = "{set this to the server ip}:51820"; | |||
} | |||
}]; | |||
}; | }; | ||
}; | }; | ||
networks = { | networks.wg0 = { | ||
# See also man systemd.network | # See also man systemd.network | ||
" | matchConfig.Name = "wg0"; | ||
# IP addresses the client interface will have | |||
address = [ | |||
"fe80::3/64" | |||
"fc00::3/120" | |||
"10.100.0.2/24" | |||
]; | |||
DHCP = "no"; | |||
dns = [ "fc00::53" ]; | |||
ntp = [ "fc00::123" ]; | |||
gateway = [ | |||
"fc00::1" | |||
"10.100.0.1" | |||
]; | |||
networkConfig = { | |||
IPv6AcceptRA = false; | |||
}; | |||
}; | }; | ||
}; | }; | ||