↓Перейти к основному содержимому

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

·418 слов·2 минут
Андрей Двуреченский
Автор
Андрей Двуреченский

Краткое руководство по настройке wireguard vpn
#

Что такое wireguard и зачем он нужен - статей много, здесь ничего этого не будет. Только шаги и команды.

Client ---> VPN server ---> Internet

Сервер
#

Выбираем физический или виртуальный сервер и подключаемся к консоли

Обновляемся

sudo apt update && sudo apt upgrade -y

Устанавливаем сам wireguard

sudo apt install wireguard -y

Активируем пересылку трафика, для этого редактируем файл

sudo nano /etc/sysctl.conf

Находим в файле параметр net.ipv4.ip_forward, раскомментируем его и устнавливааем значение =1

Проверяем

cat /proc/sys/net/ipv4/ip_forward

Должна вернутся 1

Перезагружаемся

sudo reboot

Подключаемся после перезагрузки

Сгенерируем пару ключей для сервера

wg genkey | tee server-pri.key |  wg pubkey > server-pub.key

И для клиента

wg genkey | tee client-pri.key |  wg pubkey > client-pub.key

В резултате получим черыре файла:

  • server-pri.key - приватный ключ сервера
  • server-pub.key - публичный ключ сервера
  • client-pri.key - приватный ключ клиента
  • client-pub.key - публичный ключ клиента
Приватные ключи должны хранится в надежном месте, публичные - собственно можно публиковать в открытомм доступе.

Создаем конфигурацию сервера

sudo nano /etc/wireguard/wg0.conf

Вставляем в него следующее содержимое

[Interface]
# Server
Address = 10.10.10.1/24 #адрес нашего виртуального интерфейса
ListenPort = 51820 # порт, на котором будет работать wireguard
PrivateKey = # сюда вставляем содержимое файла server-pri.key, сгенерированного на предыдущем шаге
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens1 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens1 -j MASQUERADE
#здесь указан физический интерфейс сервера ens1, нобходимо скорректировать под свой сверер

[Peer]
# Client
PublicKey = # сюда вставляем содержимое файла client-pub.key, сгенерированного на предыдущем шаге
AllowedIPs = 10.10.10.2/32

Запускаем сервис wireguard

sudo systemctl start wg-quick@wg0
Если сервис wg-quick@wg0 вдруг не запускается - первое, что стоит проверить - присутствует ли в системе пакет resolvconf (если нет - установить sudo apt install resolvconf)

И устанавливаем автозапуск

sudo systemctl enable wg-quick@wg0

Клиент
#

Создаем конфигурацию клиента

nano client.conf

Вставляем содержимое

[Interface]
PrivateKey = # сюда вставляем содержимое файла client-pri.key
Address = 10.10.10.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = # сюда вставляем содержимое файла server-pub.key
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = xx.xx.xx.xx:51820 # xx.xx.xx.xx внешний адрес нашего сервера

Можем либо файлом перенести эту конфигурацию на клиента, либо через QR-код с помощью qrencode

sudo apt install qrencode -y

Генерируем QR-код либо в отдельный файл

cat client.conf  | qrencode -o client.png

Либо отображаем QR-код сразу в консоли

qrencode -t ansiutf8 < client.conf

Активируем клиента и наслаждаемся.

90% ошибок при настройке - невнимательность. Если что-то не работает - проверяем первым делом ключи и IP-адреса.