Введение

Wireguard это современный протокол VPN, его можно использовать для того чтобы связать в одну локальную сеть компьютеры находящиеся в разных местах или использовать для обхода блокировок роскомнадзора. Для настройки нам потребуется сервер, я не буду описывать где его взять, так как эта информация зависит от огромного количества факторов и нет универсального совета. Главное чтобы сервер находился не в России, его адрес был не заблокирован и вы имели возможность за него платить из России. Если планируется оплата биткоинами я могу посоветовать https://host4coins.net/ . Искать сервера можно тут. Я исхожу из того что сервер уже арендован и управляется по SSH. Советую использовать сервера на Debian 11.

Настройка сервера

И так, подключаемся к серверу

ssh root@<"адрес сервера">

Обновляем и устанавливаем необходимые пакеты

apt update
apt updrade
apt install wireguard qrencode -y

Разрешаем проброс пакетов

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

Теперь генерируем публичный и приватный ключи

wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey

И создаём файл конфигурации

nano /etc/wireguard/wg0.conf

Записываем в него

[Interface]
Address = 10.0.0.1/24
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
ListenPort = 51820
PrivateKey = <"Тут ваш privatecey">

Нужно иметь ввиду что вместо ’eth0’ может быть другой серевой интерфейс Посмотреть список доступных интерфейсов можно командой ip a

Посмотреть PrivateKey можно командой cat /etc/wireguard/privatekey

Теперь запустим интерфейс:

wg-quick up wg0

И запустим сервис:

systemctl enable wg-quick@wg0

Теперь можно посмотреть работает ли wireguard:

wg show wg0

Кроме того можно посмотреть работает ли служба:

systemctl status wg-quick@wg0

Если вдруг у вас будут проблемы то сначала сделайте

wg-quick down wg0

А потом перезапустите сервис

systemctl start wg-quick@wg0

После этого посмотрите статус

systemctl status wg-quick@wg0

Настройки клиента

Подготовка на сервере

Генерируем ключи для клиента на сервере

wg genkey | tee /etc/wireguard/client_privatekey | wg pubkey | tee /etc/wireguard/client_publickey

Откроем файл конфигурации и допишем в конец

[Peer]
PublicKey = <"client_publickey">
AllowedIPs = 10.0.0.4/32

Перезапустим wireguard

systemctl restart wg-quick@wg0

Создать файл конфигурации для клиента

nano /etc/wireguard/client.conf

И записваем туда

[Interface]
PrivateKey = <"client-privatecey">
Address = 10.0.0.4/32

[Peer]
PublicKey = <"publickey">
Endpoint = <"Адрес сервера">:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 20

В поле Address пишем тот же ip адрес кторый вписали в конфигурацию сервера. Для каждого клиента адрес должен быть уникальным.

Теперь выводим QR-код на экран

qrencode -t ansiutf8 < /etc/wireguard/client.conf
Настройка телефона
  • Скачиваем приложение wireguard
  • Нажимаем “+” и “Сканировать QR-код”
  • Сканируем QR-код с экрана компьютера

После добавления каждого нового клиента нужно перезапускать сервер

systemctl restart wg-quick@wg0