Публикация

Настройка wireguard сервера, как настроить и подключить впн

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

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

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

Сервер

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

Обновляемся

1
sudo apt update && sudo apt upgrade -y

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

1
sudo apt install wireguard -y

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

1
sudo nano /etc/sysctl.conf

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

Проверяем

1
cat /proc/sys/net/ipv4/ip_forward

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

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

1
sudo reboot

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

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

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

И для клиента

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

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

  • server-pri.key - приватный ключ сервера
  • server-pub.key - публичный ключ сервера
  • client-pri.key - приватный ключ клиента
  • client-pub.key - публичный ключ клиента

Приватные ключи должны хранится в надежном месте, публичные - собственно можно публиковать в открытомм доступе кому угодно.

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

1
sudo nano /etc/wireguard/wg0.conf

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

1
2
3
4
5
6
7
8
9
10
11
12
13
[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

1
sudo systemctl start wg-quick@wg0

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

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

1
sudo systemctl enable wg-quick@wg0

Клиент

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

1
nano client.conf

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

1
2
3
4
5
6
7
8
9
[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

1
sudo apt install qrencode -y

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

1
cat client.conf  | qrencode -o client.png

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

1
qrencode -t ansiutf8 < client.conf

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

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

Публикация защищена лицензией CC BY 4.0 .