Настройка VPN WireGuard

Данная статья содержит следующие разделы:

 Установка сервера через маркетплейс AdminVPS
 Настройка и подключение:
        - Android и IOS
        - Windows
        - MacOS
 Проверка скорости
 Установка сервера через docker-compose
 Доступ к локальным ресурсам при установленном подключении

В основе WireGuard лежит концепция криптографической аутентификации между участниками сети («пирами»). Каждый узел генерирует пару ключей: приватный (хранится локально) и публичный (обменивается с другими участниками). Соединение устанавливается только между устройствами, чьи публичные ключи прописаны в конфигурации, что исключает несанкционированный доступ. Для передачи данных используется протокол UDP, что способствует снижению задержек и оптимизации трафика.

Ключевые преимущества:

  • Упрощенная архитектура: Кодовая база составляет менее 4 тыс. строк (в 100 раз меньше аналогов), что снижает вероятность уязвимостей.

  • Современные алгоритмы шифрования: ChaCha20, Curve25519, BLAKE2 и другие протоколы постквантовой эры.

  • Динамическая маршрутизация: Подключение сохраняется при смене IP-адресов, что актуально для мобильных устройств.

  • Кросс-платформенность: Поддержка Linux, Windows, macOS, iOS, Android и даже встраиваемых систем.


Установка сервера через маркетплейс AdminVPS

 

При заказе сервера потребуется в разделе "Маркетплейс" выбрать VPN Wireguard (ubuntu 22.04) и операционную систему ubuntu 22.04

После формирования заказа и оплаты сервер будет активирован, а на контактный e-mail указанный при регистрации направлены данные доступа.

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

Необходимо перейти по адресу из письма и войти в интерфейс со своим паролем. Пароль также доступен в личном кабинете раздел Доступ



Данный пароль используется в Web интерфейсе WireGuard


 

После входа нам потребуется добавить новых клиентов для подключения:


Доступны два способа подключения к серверу с клиентского устройства:

  • QR-код — удобно с мобильного устройства
  • Config-файл — для ПК проще загрузить файл конфигурации.

 

 

 

Для Android и IOS 

Для запуска на смартфоне нужно скачать с GooglePlay или Appstore официальный клиент Wireguard после чего  нужно открыть приложение > отсканировать QR-код с web-интерфейса > нажать «Подключиться».



После подключения проверяем в любом удобном сервисе для проверки IP, если указан IP сервера значит, всё работает корректно.

 

Windows

Для подключения нужно:

  • Скачать клиент для Windows можно с официального сайта WireGuard
  • В веб-интерфейсе скачать конфигурационный файл
  • Запустить клиент > Добавить туннель > Выбрать файл -> Нажать «Подключить».

 

 

MacOS 

Для подключения нужно:

  • Скачать клиент для Windows можно с официального сайта WireGuard
  • В веб-интерфейсе скачать конфигурационный файл
  • Запустить клиент > Импорт туннелей из файла> Выбрать файл -> Нажать «Подключить».





На этом настройка закончена и можно использовать WireGuard.

 

Проверка скорости

Для проверки скорости интернета с самого сервера потребуется установить инструмент Speedtest CLI:

curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash sudo apt-get install speedtest



Установка сервера через docker-compose

Хотя встроенный веб-интерфейс и автоматическая установка через маркетплейс AdminVPS значительно упрощают настройку, такой подход ограничивает гибкость управления. Например, при работе с альтернативными хостинг-провайдерами или собственными серверами, где подобные платформенные решения недоступны, возникает потребность в более тонкой настройке и расширенном контроле.  

Для реализации этой задачи рассмотрим установку через Docker — инструмент, который позволяет развернуть аналогичный контейнер с WireGuard и веб-панелью управления, сохранив полную автономность от внешних сервисов.  

 

Этапы подготовки:  

1. Развертывание базовой среды  

   Заказываем сервер с операционной системой Ubuntu 24.04  без предустановленных компонентов.  

2. Первичная настройка  

   После подключения к серверу через SSH первым шагом обновляем системные компоненты, а затем устанавливаем Docker и docker-compose — ключевые инструменты для работы с контейнерами.  

apt update && apt upgrade -y 
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Следующим шагом нужно создать безопасный зашифрованный пароль для веб-интерфейса. Для этого скачаем образ wg-ease:

docker pull ghcr.io/wg-easy/wg-easy

И запускаем команду:

docker run -it ghcr.io/wg-easy/wg-easy wgpw YOUPASSWORD

Вместо YOURPASSWORD подставьте свой пароль.

На выходе получаем свой пароль в зашифрованном виде, примерно такого формата:

$2a$12$BGXo0fIV4s0gVEaNQDggpeVz01MhlG8DzSLfs2tbvuKTSoaXoKi1G

Оригинальный пароль нужно запомнить и сохранить, обратно расшифровать вы его уже не сможете (но пароль можно поменять, настройки при этом сохраняются).

Создадим новый файл compose.yaml:

nano compose.yaml

В редакторе вставляем следующую конфигурацию:

services: 
   wg-easy:
      image: ghcr.io/wg-easy/wg-easy
      container_name: wg-easy
      environment:
         LANG: ru
         WG_HOST: '185.237.95.141' # Hostname or server white IP address
         PASSWORD_HASH: $$2a$$12$$BGXo0fIV4s0gVEaNQDggpeVz01MhlG8DzSLfs2tbvuKTSoaXoKi1G
         MAX_AGE: 15
     volumes:
         - ./wireguard:/etc/wireguard
     ports:
         - 51820:51820/udp
         - 51821:51821/tcp
     cap_add:
         - NET_ADMIN
         - SYS_MODULE
     sysctls:
         - net.ipv6.conf.all.disable_ipv6=0
         - net.ipv4.ip_forward=1
         - net.ipv4.conf.all.src_valid_mark=1
    restart: unless-stopped

 

Важно:
  • WG_HOST — внешний IP-адрес вашего сервера.
  • PASSWORD_HASH — зашифрованный пароль от веб-интерфейса WireGuard. Здесь нужно установить пароль созданный выше, без кавычек, но все знаки $ заменить на $$ (задвоить).


Сохраняем изменения, после чего выполняю команду для запуска:

docker compose up -d

После запуска можно проверить и открыть в браузере по адресу http://IP-адрес:51821.

В итоге получим тот же знакомый web-интерфейс.

Дополнительно есть возможность в разделе environment docker-compose файла, изменить некоторую конфигурацию:

  • PASSWORD_HASH — зашифрованный пароль для WebGUI.
  • WG_HOST — hostname или IP-адрес.
  • WG_DEVICE — устройство Ethernet, через которое должен пересылаться трафик WireGuard. 
  • WG_PORT — общедоступный UDP-порт сервера (51280).
  • WG_MTU — MTU, который будут использовать клиенты. Сервер использует WG MTU по умолчанию. 
  • WG_PERSISTENT_KEEPALIVE — значение в секундах для проверки соединения. Если это значение равно 0, то соединения не будут поддерживаться в рабочем состоянии. 
  • WG_DEFAULT_ADDRESS — диапазон адресов, которые будут выдаваться клиентам.
  • WG_DEFAULT_DNS — DNS-сервер.
  • WG_ALLOWED_IPS — разрешенные IP-адреса, которые будут использовать клиенты.
  • MAX_AGE — максимальное время сеансов веб-интерфейса в минутах. Значение по умолчанию (0) означает, что сеанс будет продолжаться до тех пор, пока браузер не будет закрыт.
  • UI_TRAFFIC_STATS — отображение активной статистики соединения по каждому клиенту. По умолчанию выключено, для включения необходимо установить значение true.
  • UI_CHART_TYPE — вид отображения статистики от 1 до 3 (обычно 3 — самый простой удобный формат в виде бара).


Данный способ установки позволяет удобнее управлять конфигурацией, перезапускать, переносить и править настройки. Также становится удобнее запускать на этом сервере другие сервисы, тоже в Docker, при необходимости.

 

Доступ к локальным ресурсам при установленном подключении

 

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

В конфигурации WireGuard есть значение AllowedIPs, где можно указать, какие адреса пойдут через WG. По умолчанию это 0.0.0.0.0/0, т.е. весь трафик идет через туннель. Для доступа к локальным ресурсам приходится делать наоборот, и все адреса, за исключением нужных (серого списка IP-адресов), добавлять в AllowedIPs.

Для этого в файле docker-compose.yml можно добавить environment-переменную и перезапустить контейнер.

 
environment:
      WG_ALLOWED_IPS: '0.0.0.0/5, 8.0.0.0/7, 11.0.0.0/8, 12.0.0.0/6, 16.0.0.0/4, 32.0.0.0/3, 64.0.0.0/2, 128.0.0.0/3, 160.0.0.0/5, 168.0.0.0/6, 172.0.0.0/12, 172.32.0.0/11, 172.64.0.0/10, 172.128.0.0/9, 173.0.0.0/8, 174.0.0.0/7, 176.0.0.0/4, 192.0.0.0/9, 192.128.0.0/11, 192.160.0.0/13, 192.169.0.0/16, 192.170.0.0/15, 192.172.0.0/14, 192.176.0.0/12, 192.192.0.0/10, 193.0.0.0/8, 194.0.0.0/7, 196.0.0.0/6, 200.0.0.0/5, 208.0.0.0/4, 8.8.8.8/32'

А в WireGuard WebGUI из маркетплейса перезапустить контейнер с добавлением флага:

 
-e WG_ALLOWED_IPS='0.0.0.0/5, 8.0.0.0/7, 11.0.0.0/8, 12.0.0.0/6, 16.0.0.0/4, 32.0.0.0/3, 64.0.0.0/2, 128.0.0.0/3, 160.0.0.0/5, 168.0.0.0/6, 172.0.0.0/12, 172.32.0.0/11, 172.64.0.0/10, 172.128.0.0/9, 173.0.0.0/8, 174.0.0.0/7, 176.0.0.0/4, 192.0.0.0/9, 192.128.0.0/11, 192.160.0.0/13, 192.169.0.0/16, 192.170.0.0/15, 192.172.0.0/14, 192.176.0.0/12, 192.192.0.0/10, 193.0.0.0/8, 194.0.0.0/7, 196.0.0.0/6, 200.0.0.0/5, 208.0.0.0/4, 8.8.8.8/32'

Или на клиентском устройстве отредактировать конфигурационный файл подключения:

 
[Peer]
PublicKey = PublicKey
PresharedKey = PresharedKey
AllowedIPs = 0.0.0.0/5, 8.0.0.0/7, 11.0.0.0/8, 12.0.0.0/6, 16.0.0.0/4, 32.0.0.0/3, 64.0.0.0/2, 128.0.0.0/3, 160.0.0.0/5, 168.0.0.0/6, 172.0.0.0/12, 172.32.0.0/11, 172.64.0.0/10, 172.128.0.0/9, 173.0.0.0/8, 174.0.0.0/7, 176.0.0.0/4, 192.0.0.0/9, 192.128.0.0/11, 192.160.0.0/13, 192.169.0.0/16, 192.170.0.0/15, 192.172.0.0/14, 192.176.0.0/12, 192.192.0.0/10, 193.0.0.0/8, 194.0.0.0/7, 196.0.0.0/6, 200.0.0.0/5, 208.0.0.0/4, 8.8.8.8/32
Endpoint = Endpoint
  • 2 Пользователи считают это полезным
Помог ли вам данный ответ?

Похожие статьи

Какие ограничения трафика (traffic) на VPS и что будет при его превышении?

Обращаем внимание, что на всех тарифах VPS хостинга установлен лимит на трафик, который...

Сетевые настройки

Данная статья содержит следующие разделы: 1. Открытие почтовых SMTP-портов и сетевых UDP2. Как...

Производительность сервера по тесту Geekbench

Что такое Geekbench Geekbench — это бесплатный кроссплатформенный тест производительности...

Как установить и проверить скорость через Speedtest

Данная статья содержит следующие разделы: 1. Установка Speedtest2. Запустите Speedtest 3....

Настройка VPN Amnezia

Данная статья содержит следующие разделы: Создание сервераУстановка и настройка AmneziaУстановка...

Powered by WHMCompleteSolution