Настройка WireGuard сервера
Настройка ключей шифрования
Создайте любым удобным для вас способом файл конфигурации сервера /etc/wireguard/wg0.conf
Команда nano wg0.conf

Вставляем в открывшийся файл следующие строки
[Interface]
# IP-адрес сервера в виртуальной сети (можем задать любой)
Address = 10.10.0.1/24
# порт, на котором ожидать подключения (можем задать любой, не дефолтный порт)
ListenPort = 64999
# приватный ключ сервера (ключ который мы сгенерировали заранее)
PrivateKey =
# настройка при поднятии сервера
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# настройка при отключении сервера
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Обратите внимание — в строках PostUp и PostDown использован как раз сетевой интерфейс eth0. Если у вас другой — замените eth0 на ваш.

Проверьте какой у вас сетевой порт
Команда ip -br link show

Так как у нас сетевой интерфейс ens3, то в настройках нам необходимо настроить на наш сетевой интерфейс, открываем файл настроек сервера.
Команда nano wg0.conf

Сохраняем настройки и выходим из файла настроек чтобы скопировать наш секретный сгенерированный ключ, чтобы вставить его в файл настроек, заходим в файл с приватным ключом и копируем его. Предварительно перейдя в директорию где создавали ключи.
Команда nano private.key

Переходим обратно к файлу конфигурации сервера /etc/wireguard/wg0.conf и вставляем скопированный приватный ключ, сохраняем файл.
Команда sudo nano /etc/wireguard/wg0.conf

Настраиваем IP форвардинг.
Маршрутизация транзитных IP-пакетов (не предназначенных для этого компьютера), или IP-форвардинг, является опциональной возможностью IP-стека Linux. По умолчанию функция форвардинга не активируется, и система не пересылает транзитные пакеты через свои интерфейсы, а только обрабатывает адресованные ей пакеты. Включение форвардинга IP-пакетов производится через параметр net.ipv4.ip_forward интерфейса sysctl. Если значение этого параметра равно 0, то форвардинг отключен, если же значение параметра не равно 0, форвардинг включен
Заходим в директорию /ectc/sysctl.conf
Команда nano /ectc/sysctl.conf

Находим строчку #net.ipv4.ip_forward=1, снимаем комментирование, и сохраняем изменения.

Проверим что настройки сохранились.
команда sysctl -p

Настройка портов в брандмауэре
Не забываем на сервере открыть порт wireguard, который указали в /etc/wireguard/wg0.conf и создать разрешающие правила в брандмауэре. В файле настроек iptables расположенный по адресу /etc/iptables/rules.v4 открываем этот файл любым текстовым редактором и вставляем строки.
iptables -A INPUT -p udp -i ppp+ --dport (номер порта указанный в настройках wireguard ) -j ACCEPT
iptables -A INPUT -s (ip указанный в настройках wireguard ) -j ACCEPT
iptables -A OUTPUT -s (ip указанный в настройках wireguard ) -j ACCEPT
iptables -A FORWARD -s (ip указанный в настройках wireguard ) -j ACCEPT

Не забывайте сохранить изменения при выходе из файла.
Настройка для автоматической работы сервера
Теперь добавим службу в автозагрузку.
Команда systemctl enable wg-quick@wg0

Это позволит автоматически запускаться серверу wireguard после перезагрузки или выключения сервера linux. Запускаем наш VPN сервер.
Команда systemctl start wg-quick@wg0

Проверим статус работы демон с wireguard
Команда systemctl status wg-quick@wg0

Статус active говорит о том, что сервер wireguard настроен и работает.