Данная статья содержит следующие разделы:
Установка сервера через маркетплейс 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