Вместо <privatekey> нужно вставить приватный ключ из файла /etc/wireguard/privatekey.
Вместо eth0 надо указать свой сетевой интерфейс.
Address = 10.2.4.1/24 - это локальный адрес сервера в VPN сети
Разрешаем ip forwarding, чтобы могли потом прокидывать трафик через сервер в интернет:
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.confsysctl -p # чтобы убедиться, что всё правильно сохранилось
Info
Если sysctl не будет срабатывать (sysctl not found), надо добавить в .bashrc или в .zshrc путь к /usr/sbin:
export PATH=$PATH:/sbin
Запуск wireguard
systemctl enable wg-quick@wg0.servicesystemctl start wg-quick@wg0.servicesystemctl status wg-quick@wg0.service
Настройка доступа клиентов
Для каждого клиента надо будет генерить keys, поэтому ключи лучше именовать подходящим образом (именами друзей, например, у которых будет доступ).
wg genkey | tee /etc/wireguard/client_privatekey | wg pubkey | tee /etc/wireguard/client_publickey
Вместо <client_publickey> нужно вставить публичный ключ из файла /etc/wireguard/client_publickey.
И ниже можно задать локальный IPклиенту. С помощью этих IP клиенты внутри VPN сети смогут взаимодействовать друг с другом.
И перезагружаем wireguard service:
systemctl restart wg-quick@wg0systemctl status wg-quick@wg0
Вместо <CLIENT-PRIVATE-KEY> нужно вставить клиентский приватный ключ с сервера из файла /etc/wireguard/client_privatekey.
Вместо <SERVER-PUBKEY> - публичный wireguard ключ сервера.
Вместо <SERVER-IP> - IP адрес wireguard сервера.
Address = 10.2.4.2/32 - это адрес, который мы указывали для клиента на сервере
PersistentKeepalive = 20 означает, что каждые 20 секунд будут пинговаться сервер-клиент, чтобы проверить, что соединение активно и работает.
Как пользоваться wireguard клиентами?
Просто нужно сделать для клиента свой client_wg.conf, который мы, к примеру, делали выше для client и передать этот файл им.
Они смогут в приложениях выбрать его и всё будет работать.
Troubleshoot
Warning: /etc/wireguard/wg0.conf is world accessible