Нижче наведено набір сніппетів для налаштування WireGuard для трьох різних дистрибутивів Linux та FreeBSD. Припускається, що сервер працюватиме на Debian, а мережа буде 10.9.21.0/24.
auto wg0
iface wg0 inet static
address 10.9.21.1/32
pre-up ip link add wg0 type wireguard
pre-up wg setconf wg0 /etc/wireguard/wg0.conf
up ip -4 route add 10.9.21.0/24 dev wg0
# up /bin/systemctl restart sshd.service
post-down ip link del wg0
umask 077 cd /etc/wireguard/ wg genkey > server-private.key wg pubkey < server-private.key > server-public.key
До речі, Debian-way та FreeBSD-way найбільш близькі до UNIX-way, тоді як Ubuntu швидше орієнтована на ‘yaml-продакшн’, ну і CentOS із його systemd. З коробки, маю на увазі.
auto wg0
iface wg0 inet static
address 10.9.21.3/32
pre-up ip link add wg0 type wireguard
pre-up wg setconf wg0 /etc/wireguard/wg0.conf
up ip -4 route add 10.9.21.0/24 dev wg0
post-down ip link del wg0
[Interface]# client private key
PrivateKey=<private.key>[Peer]# server public key
PublicKey=<server-public.key>Endpoint=<server-external-ip>:1234PersistentKeepalive=10AllowedIPs=10.9.21.0/24
printf'net.ipv4.ip_forward = 1'> /etc/sysctl.d/wireguard.conf
sysctl -p
wg-quick up /etc/wireguard/wg0.conf
wg-quick down /etc/wireguard/wg0.conf
systemctl enable wg-quick@wg0
systemctl status wg-quick@wg0
ifconfig -a
wg show
journalctl -u wg-quick@wg0
Команда wg show відобразить стан інтерфейсу wg0, проте service wireguard status не покаже жодної інформації, оскільки інтерфейс налаштовано через sysrc | rc.conf.
[Interface]# client private key
PrivateKey=<private.key>[Peer]# server public key
PublicKey=<server-public.key>Endpoint=<server-external-ip>:1234PersistentKeepalive=10AllowedIPs=10.9.21.0/24
ip link del wg0
ip link add wg0 type wireguard
wg setconf wg0 /etc/wireguard/wg0.conf
ip -4 address add 10.9.21.13/32 dev wg0
ip link set mtu 1420 up dev wg0
ip -4 route add 10.9.21.0/24 dev wg0
wg show
ping 10.9.21.1